From dc19b5b2f18e70f0efa1efcf7f210fecba18f440 Mon Sep 17 00:00:00 2001 From: kddejong <36457093+kddejong@users.noreply.github.com> Date: Fri, 26 Jul 2024 06:30:41 +0000 Subject: [PATCH] Update CloudFormation schemas to 2024-07-26 --- docs/rules.md | 4 +- .../data/AdditionalSpecs/Policies.json | 42 +- ...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 +- ...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 +- .../data/Serverless/ManagedPolicies.json | 1 + .../aws_rds_dbcluster/engine_version.json | 4 +- .../aws_rds_dbinstance/engine_version.json | 16 +- .../boto.json | 2 + .../all/aws_ec2_launchtemplate/boto.json | 2 +- .../schemas/providers/af_south_1/__init__.py | 16 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../af_south_1/aws-batch-jobdefinition.json | 992 ++++++++++ .../providers/af_south_1/aws-fms-policy.json | 472 +++++ ...balaccelerator-crossaccountattachment.json | 123 ++ .../af_south_1/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../af_south_1/aws-lambda-alias.json | 88 - .../af_south_1/aws-rds-integration.json | 154 ++ .../af_south_1/aws-sagemaker-app.json | 210 +++ .../af_south_1/aws-sagemaker-domain.json | 831 +++++++++ .../af_south_1/aws-sagemaker-model.json | 235 +++ .../af_south_1/aws-sagemaker-space.json | 436 +++++ .../af_south_1/aws-sagemaker-userprofile.json | 592 ++++++ .../aws-secretsmanager-resourcepolicy.json} | 22 +- .../aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 256 --- .../schemas/providers/ap_east_1/__init__.py | 9 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../aws-ec2-trafficmirrorfilterrule.json | 74 - .../providers/ap_east_1/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../providers/ap_east_1/aws-lambda-alias.json | 88 - .../ap_east_1/aws-rds-integration.json | 154 ++ .../aws-secretsmanager-resourcepolicy.json | 35 + .../ap_east_1/aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 256 --- .../providers/ap_northeast_1/__init__.py | 23 +- .../aws-cleanroomsml-trainingdataset.json | 249 +++ .../aws-dms-replicationconfig.json | 204 --- .../aws-inspectorv2-cisscanconfiguration.json | 245 +++ .../aws-organizations-organization.json | 88 - .../ap_northeast_1/aws-sagemaker-app.json | 210 +++ .../ap_northeast_1/aws-sagemaker-domain.json | 831 +++++++++ .../ap_northeast_1/aws-sagemaker-space.json | 436 +++++ .../aws-sagemaker-userprofile.json | 592 ++++++ .../aws-shield-protectiongroup.json | 141 -- .../aws-workspacesweb-portal.json | 311 ---- .../aws-workspacesweb-usersettings.json | 250 --- .../providers/ap_northeast_2/__init__.py | 17 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../aws-batch-jobdefinition.json | 992 ++++++++++ .../aws-cleanroomsml-trainingdataset.json | 249 +++ .../ap_northeast_2/aws-fms-policy.json | 472 +++++ ...balaccelerator-crossaccountattachment.json | 123 ++ .../ap_northeast_2/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../ap_northeast_2/aws-lambda-alias.json | 88 - .../ap_northeast_2/aws-rds-integration.json | 154 ++ .../ap_northeast_2/aws-sagemaker-app.json | 210 +++ .../ap_northeast_2/aws-sagemaker-domain.json | 831 +++++++++ .../ap_northeast_2/aws-sagemaker-model.json | 235 +++ .../ap_northeast_2/aws-sagemaker-space.json | 436 +++++ .../aws-sagemaker-userprofile.json | 592 ++++++ .../aws-secretsmanager-resourcepolicy.json | 35 + .../aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 256 --- .../providers/ap_northeast_3/__init__.py | 11 - ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../aws-batch-jobdefinition.json | 992 ++++++++++ .../ap_northeast_3/aws-fms-policy.json | 472 +++++ .../ap_northeast_3/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../ap_northeast_3/aws-rds-integration.json | 154 ++ .../ap_northeast_3/aws-sagemaker-app.json | 210 +++ .../ap_northeast_3/aws-sagemaker-domain.json | 831 +++++++++ .../ap_northeast_3/aws-sagemaker-model.json | 235 +++ .../ap_northeast_3/aws-sagemaker-space.json | 436 +++++ .../aws-sagemaker-userprofile.json | 592 ++++++ .../schemas/providers/ap_south_1/__init__.py | 24 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../ap_south_1/aws-batch-jobdefinition.json | 992 ++++++++++ .../providers/ap_south_1/aws-fms-policy.json | 472 +++++ .../ap_south_1/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../aws-organizations-organization.json | 88 - .../ap_south_1/aws-rds-integration.json | 154 ++ .../ap_south_1/aws-sagemaker-app.json | 210 +++ .../ap_south_1/aws-sagemaker-domain.json | 831 +++++++++ .../ap_south_1/aws-sagemaker-model.json | 235 +++ .../ap_south_1/aws-sagemaker-space.json | 436 +++++ .../ap_south_1/aws-sagemaker-userprofile.json | 592 ++++++ .../aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 256 --- .../schemas/providers/ap_south_2/__init__.py | 12 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../ap_south_2/aws-batch-jobdefinition.json | 992 ++++++++++ .../providers/ap_south_2/aws-fms-policy.json | 472 +++++ ...balaccelerator-crossaccountattachment.json | 123 ++ .../ap_south_2/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../ap_south_2/aws-lambda-alias.json | 88 - .../aws-secretsmanager-resourcepolicy.json | 35 + .../aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 256 --- .../providers/ap_southeast_1/__init__.py | 26 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../aws-batch-jobdefinition.json | 992 ++++++++++ .../aws-cleanroomsml-trainingdataset.json | 249 +++ .../aws-codeartifact-packagegroup.json | 195 ++ .../ap_southeast_1/aws-fms-policy.json | 472 +++++ .../ap_southeast_1/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../aws-organizations-organization.json | 88 - .../ap_southeast_1/aws-rds-integration.json | 154 ++ .../ap_southeast_1/aws-sagemaker-app.json | 210 +++ .../ap_southeast_1/aws-sagemaker-domain.json | 831 +++++++++ .../ap_southeast_1/aws-sagemaker-model.json | 235 +++ .../ap_southeast_1/aws-sagemaker-space.json | 436 +++++ .../aws-sagemaker-userprofile.json | 592 ++++++ .../aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 256 --- .../providers/ap_southeast_2/__init__.py | 26 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../aws-batch-jobdefinition.json | 992 ++++++++++ .../aws-cleanroomsml-trainingdataset.json | 249 +++ .../aws-codeartifact-packagegroup.json | 195 ++ .../ap_southeast_2/aws-fms-policy.json | 472 +++++ .../ap_southeast_2/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../aws-organizations-organization.json | 88 - .../ap_southeast_2/aws-rds-integration.json | 154 ++ .../ap_southeast_2/aws-sagemaker-app.json | 210 +++ .../ap_southeast_2/aws-sagemaker-domain.json | 831 +++++++++ .../ap_southeast_2/aws-sagemaker-model.json | 235 +++ .../ap_southeast_2/aws-sagemaker-space.json | 436 +++++ .../aws-sagemaker-userprofile.json | 592 ++++++ .../aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 256 --- .../providers/ap_southeast_3/__init__.py | 16 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../ap_southeast_3/aws-fms-policy.json | 472 +++++ ...balaccelerator-crossaccountattachment.json | 123 ++ .../ap_southeast_3/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../ap_southeast_3/aws-lambda-alias.json | 88 - .../aws-rds-dbcluster.json | 1 - .../aws-rds-dbinstance.json | 1 - .../ap_southeast_3/aws-sagemaker-app.json | 210 +++ .../ap_southeast_3/aws-sagemaker-domain.json | 831 +++++++++ .../ap_southeast_3/aws-sagemaker-model.json | 235 +++ .../ap_southeast_3/aws-sagemaker-space.json | 436 +++++ .../aws-sagemaker-userprofile.json | 592 ++++++ .../aws-secretsmanager-resourcepolicy.json | 35 + .../aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 256 --- .../providers/ap_southeast_4/__init__.py | 11 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../aws-ec2-trafficmirrorfilterrule.json | 74 - .../ap_southeast_4/aws-fms-policy.json | 472 +++++ .../ap_southeast_4/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../ap_southeast_4/aws-lambda-alias.json | 88 - .../aws-mediapackagev2-channel.json | 153 ++ .../aws-mediapackagev2-originendpoint.json | 627 +++++++ .../aws-secretsmanager-resourcepolicy.json | 35 + .../aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 256 --- .../providers/ca_central_1/__init__.py | 17 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../ca_central_1/aws-batch-jobdefinition.json | 992 ++++++++++ .../ca_central_1/aws-fms-policy.json | 472 +++++ .../ca_central_1/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../ca_central_1/aws-lambda-alias.json | 88 - .../ca_central_1/aws-rds-integration.json | 154 ++ .../ca_central_1/aws-sagemaker-app.json | 210 +++ .../ca_central_1/aws-sagemaker-domain.json | 831 +++++++++ .../ca_central_1/aws-sagemaker-model.json | 235 +++ .../ca_central_1/aws-sagemaker-space.json | 436 +++++ .../aws-sagemaker-userprofile.json | 592 ++++++ .../aws-secretsmanager-resourcepolicy.json | 35 + .../schemas/providers/ca_west_1/__init__.py | 14 +- ...-applicationautoscaling-scalingpolicy.json | 2 + ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../aws-ec2-keypair.json | 4 - .../providers/ca_west_1/aws-fms-policy.json | 472 +++++ ...balaccelerator-crossaccountattachment.json | 123 ++ .../providers/ca_west_1/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../aws-rds-dbcluster.json | 1 - .../aws-rds-dbinstance.json | 1 - .../aws-secretsmanager-resourcepolicy.json | 35 + .../ca_west_1/aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 256 --- .../schemas/providers/cn_north_1/__init__.py | 14 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../cn_north_1/aws-batch-jobdefinition.json | 992 ++++++++++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../aws-organizations-organization.json | 88 - .../cn_north_1/aws-sagemaker-app.json | 210 +++ .../cn_north_1/aws-sagemaker-model.json | 235 +++ .../aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 256 --- .../providers/cn_north_1/aws-xray-group.json | 105 ++ .../cn_north_1/aws-xray-samplingrule.json | 255 +++ .../providers/cn_northwest_1/__init__.py | 24 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../aws-batch-jobdefinition.json | 992 ++++++++++ .../cn_northwest_1/aws-ec2-keypair.json | 122 ++ .../cn_northwest_1/aws-fms-policy.json | 472 +++++ .../cn_northwest_1/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../aws-rds-dbcluster.json | 11 + .../cn_northwest_1/aws-rds-dbinstance.json | 620 +++++++ .../cn_northwest_1/aws-rds-integration.json | 154 ++ .../cn_northwest_1/aws-sagemaker-app.json | 210 +++ .../cn_northwest_1/aws-sagemaker-domain.json | 831 +++++++++ .../cn_northwest_1/aws-sagemaker-model.json | 235 +++ .../aws-sagemaker-userprofile.json | 592 ++++++ .../aws-secretsmanager-resourcepolicy.json | 35 + .../aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 256 --- .../cn_northwest_1/aws-xray-group.json | 105 ++ .../cn_northwest_1/aws-xray-samplingrule.json | 255 +++ .../providers/eu_central_1/__init__.py | 29 +- .../aws-cleanroomsml-trainingdataset.json | 249 +++ .../aws-dms-replicationconfig.json | 204 --- .../eu_central_1/aws-ec2-securitygroup.json | 240 +++ .../eu_central_1/aws-ec2-vpnconnection.json | 4 + .../aws-ec2-vpngatewayroutepropagation.json | 57 + .../eu_central_1/aws-eks-cluster.json | 409 ----- .../aws-inspectorv2-cisscanconfiguration.json | 245 +++ .../eu_central_1/aws-ivschat-room.json | 158 ++ .../aws-organizations-organization.json | 88 - .../aws-route53-cidrcollection.json | 101 ++ .../eu_central_1/aws-sagemaker-app.json | 210 +++ .../eu_central_1/aws-sagemaker-domain.json | 831 +++++++++ .../aws-sagemaker-modelpackage.json | 1135 ++++++++++++ .../eu_central_1/aws-sagemaker-space.json | 436 +++++ .../aws-sagemaker-userprofile.json | 592 ++++++ .../aws-secretsmanager-resourcepolicy.json | 73 - .../aws-securityhub-securitycontrol.json | 209 +++ .../aws-shield-protectiongroup.json | 141 -- .../aws-workspacesweb-portal.json | 311 ---- .../aws-workspacesweb-usersettings.json | 250 --- .../providers/eu_central_2/__init__.py | 11 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../aws-ec2-trafficmirrorfilterrule.json | 74 - .../eu_central_2/aws-fms-policy.json | 472 +++++ .../eu_central_2/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../eu_central_2/aws-lambda-alias.json | 88 - .../aws-secretsmanager-resourcepolicy.json | 35 + .../aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 256 --- .../schemas/providers/eu_north_1/__init__.py | 12 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../aws-cleanroomsml-trainingdataset.json | 249 +++ .../aws-ec2-trafficmirrorfilterrule.json | 74 - .../eu_north_1/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../eu_north_1/aws-lambda-alias.json | 88 - .../eu_north_1/aws-rds-integration.json | 154 ++ .../eu_north_1/aws-sagemaker-app.json | 210 +++ .../eu_north_1/aws-sagemaker-domain.json | 831 +++++++++ .../eu_north_1/aws-sagemaker-space.json | 436 +++++ .../eu_north_1/aws-sagemaker-userprofile.json | 592 ++++++ .../aws-secretsmanager-resourcepolicy.json | 35 + .../schemas/providers/eu_south_1/__init__.py | 17 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../eu_south_1/aws-batch-jobdefinition.json | 992 ++++++++++ .../providers/eu_south_1/aws-ec2-keypair.json | 122 ++ .../providers/eu_south_1/aws-fms-policy.json | 472 +++++ ...balaccelerator-crossaccountattachment.json | 123 ++ .../eu_south_1/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../eu_south_1/aws-lambda-alias.json | 88 - .../eu_south_1/aws-rds-integration.json | 154 ++ .../eu_south_1/aws-sagemaker-app.json | 210 +++ .../eu_south_1/aws-sagemaker-domain.json | 831 +++++++++ .../eu_south_1/aws-sagemaker-model.json | 235 +++ .../eu_south_1/aws-sagemaker-space.json | 436 +++++ .../eu_south_1/aws-sagemaker-userprofile.json | 592 ++++++ .../aws-secretsmanager-resourcepolicy.json | 35 + .../aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 256 --- .../schemas/providers/eu_south_2/__init__.py | 14 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../eu_south_2/aws-batch-jobdefinition.json | 992 ++++++++++ .../aws-controltower-enabledcontrol.json | 183 -- .../providers/eu_south_2/aws-fms-policy.json | 472 +++++ ...balaccelerator-crossaccountattachment.json | 123 ++ .../eu_south_2/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../eu_south_2/aws-lambda-alias.json | 88 - .../eu_south_2/aws-sagemaker-app.json | 210 +++ .../eu_south_2/aws-sagemaker-domain.json | 831 +++++++++ .../eu_south_2/aws-sagemaker-userprofile.json | 592 ++++++ .../aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 256 --- .../schemas/providers/eu_west_1/__init__.py | 19 +- .../aws-cleanroomsml-trainingdataset.json | 249 +++ .../aws-ec2-trafficmirrorfilterrule.json | 74 - .../providers/eu_west_1/aws-glue-trigger.json | 172 ++ .../eu_west_1/aws-sagemaker-app.json | 210 +++ .../eu_west_1/aws-sagemaker-domain.json | 831 +++++++++ .../eu_west_1/aws-sagemaker-space.json | 436 +++++ .../eu_west_1/aws-sagemaker-userprofile.json | 592 ++++++ .../schemas/providers/eu_west_2/__init__.py | 10 +- .../aws-cleanroomsml-trainingdataset.json | 249 +++ .../providers/eu_west_2/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../eu_west_2/aws-rds-integration.json | 154 ++ .../schemas/providers/eu_west_3/__init__.py | 26 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../eu_west_3/aws-batch-jobdefinition.json | 992 ++++++++++ .../aws-codeartifact-packagegroup.json | 195 ++ .../providers/eu_west_3/aws-fms-policy.json | 472 +++++ .../providers/eu_west_3/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../providers/eu_west_3/aws-lambda-alias.json | 88 - .../eu_west_3/aws-rds-integration.json | 154 ++ .../eu_west_3/aws-sagemaker-app.json | 210 +++ .../eu_west_3/aws-sagemaker-domain.json | 831 +++++++++ .../eu_west_3/aws-sagemaker-model.json | 235 +++ .../eu_west_3/aws-sagemaker-space.json | 436 +++++ .../eu_west_3/aws-sagemaker-userprofile.json | 592 ++++++ .../aws-secretsmanager-resourcepolicy.json | 35 + .../eu_west_3/aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 256 --- .../providers/il_central_1/__init__.py | 18 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../il_central_1/aws-batch-jobdefinition.json | 992 ++++++++++ .../il_central_1/aws-ec2-keypair.json | 122 ++ .../il_central_1/aws-fms-policy.json | 472 +++++ ...balaccelerator-crossaccountattachment.json | 123 ++ .../il_central_1/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../il_central_1/aws-lambda-alias.json | 88 - .../il_central_1/aws-rds-dbcluster.json | 469 +++++ .../il_central_1/aws-rds-dbinstance.json | 620 +++++++ .../il_central_1/aws-sagemaker-app.json | 210 +++ .../il_central_1/aws-sagemaker-domain.json | 831 +++++++++ .../aws-sagemaker-userprofile.json | 592 ++++++ .../aws-secretsmanager-resourcepolicy.json | 35 + .../aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 256 --- .../providers/me_central_1/__init__.py | 11 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../aws-ec2-trafficmirrorfilterrule.json | 74 - .../me_central_1/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../me_central_1/aws-lambda-alias.json | 88 - .../me_central_1/aws-sagemaker-app.json | 210 +++ .../me_central_1/aws-sagemaker-domain.json | 831 +++++++++ .../aws-sagemaker-userprofile.json | 592 ++++++ .../aws-secretsmanager-resourcepolicy.json | 35 + .../aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 256 --- .../schemas/providers/me_south_1/__init__.py | 16 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../me_south_1/aws-batch-jobdefinition.json | 992 ++++++++++ .../providers/me_south_1/aws-fms-policy.json | 472 +++++ ...balaccelerator-crossaccountattachment.json | 123 ++ .../me_south_1/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../me_south_1/aws-lambda-alias.json | 88 - .../me_south_1/aws-rds-integration.json | 154 ++ .../me_south_1/aws-sagemaker-app.json | 210 +++ .../me_south_1/aws-sagemaker-domain.json | 831 +++++++++ .../me_south_1/aws-sagemaker-model.json | 235 +++ .../me_south_1/aws-sagemaker-space.json | 436 +++++ .../me_south_1/aws-sagemaker-userprofile.json | 592 ++++++ .../aws-secretsmanager-resourcepolicy.json | 35 + .../aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 256 --- .../schemas/providers/sa_east_1/__init__.py | 16 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../sa_east_1/aws-batch-jobdefinition.json | 992 ++++++++++ .../providers/sa_east_1/aws-fms-policy.json | 472 +++++ .../providers/sa_east_1/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../aws-organizations-organization.json | 88 - .../sa_east_1/aws-rds-integration.json | 154 ++ .../sa_east_1/aws-sagemaker-app.json | 210 +++ .../sa_east_1/aws-sagemaker-domain.json | 831 +++++++++ .../sa_east_1/aws-sagemaker-model.json | 235 +++ .../sa_east_1/aws-sagemaker-space.json | 436 +++++ .../sa_east_1/aws-sagemaker-userprofile.json | 592 ++++++ .../schemas/providers/us_east_1/__init__.py | 6 + ...-applicationautoscaling-scalingpolicy.json | 2 + ...t-autoshiftobservernotificationstatus.json | 73 + ...onalshift-zonalautoshiftconfiguration.json | 8 +- .../us_east_1/aws-batch-jobdefinition.json | 3 + .../us_east_1/aws-bedrock-datasource.json | 2 +- .../aws-bedrock-flow.json | 0 .../aws-bedrock-flowalias.json | 0 .../aws-bedrock-flowversion.json | 0 .../us_east_1/aws-bedrock-knowledgebase.json | 108 +- .../aws-bedrock-prompt.json | 0 .../aws-bedrock-promptversion.json | 0 .../aws-cleanroomsml-trainingdataset.json | 4 + .../aws-codeartifact-packagegroup.json | 5 + .../aws-connectcampaigns-campaign.json | 4 + .../us_east_1/aws-dms-replicationconfig.json | 15 +- .../providers/us_east_1/aws-ec2-keypair.json | 4 + .../us_east_1/aws-ec2-launchtemplate.json | 2 +- .../aws-ecr-repositorycreationtemplate.json | 11 +- .../providers/us_east_1/aws-eks-cluster.json | 64 + .../us_east_1/aws-eks-nodegroup.json | 4 + ...ws-entityresolution-idmappingworkflow.json | 10 +- .../providers/us_east_1/aws-fms-policy.json | 2 +- ...balaccelerator-crossaccountattachment.json | 6 +- .../providers/us_east_1/aws-glue-trigger.json | 54 +- .../aws-kinesisfirehose-deliverystream.json | 126 ++ .../aws-mediaconnect-flowoutput.json | 7 + .../us_east_1/aws-mediapackagev2-channel.json | 13 +- .../aws-mediapackagev2-originendpoint.json | 24 + .../aws-organizations-organization.json | 4 +- .../us_east_1/aws-rds-dbcluster.json | 1 + .../us_east_1/aws-rds-dbinstance.json | 1 + .../us_east_1/aws-rds-integration.json | 4 + .../us_east_1/aws-s3outposts-bucket.json | 5 + .../us_east_1/aws-sagemaker-app.json | 5 + .../us_east_1/aws-sagemaker-domain.json | 18 + .../us_east_1/aws-sagemaker-model.json | 15 + .../us_east_1/aws-sagemaker-space.json | 28 + .../us_east_1/aws-sagemaker-userprofile.json | 23 + .../aws-secretsmanager-resourcepolicy.json | 50 +- .../us_east_1/aws-shield-protectiongroup.json | 5 + .../us_east_1/aws-workspacesweb-portal.json | 9 +- .../aws-workspacesweb-usersettings.json | 3 + .../providers/us_east_1/aws-xray-group.json | 7 + .../us_east_1/aws-xray-samplingrule.json | 7 + .../schemas/providers/us_east_2/__init__.py | 14 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../us_east_2/aws-batch-jobdefinition.json | 992 ++++++++++ .../aws-codeartifact-packagegroup.json | 195 ++ ...ws-entityresolution-idmappingworkflow.json | 344 ++++ .../providers/us_east_2/aws-fms-policy.json | 472 +++++ ...balaccelerator-crossaccountattachment.json | 123 ++ .../providers/us_east_2/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../providers/us_east_2/aws-lambda-alias.json | 88 - .../us_east_2/aws-rds-integration.json | 154 ++ .../us_east_2/aws-sagemaker-model.json | 235 +++ .../aws-secretsmanager-resourcepolicy.json | 35 + .../us_east_2/aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 256 --- .../providers/us_gov_east_1/__init__.py | 15 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../aws-batch-jobdefinition.json | 992 ++++++++++ .../us_gov_east_1/aws-ec2-keypair.json | 122 ++ .../us_gov_east_1/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../us_gov_east_1/aws-rds-dbcluster.json | 469 +++++ .../us_gov_east_1/aws-rds-dbinstance.json | 620 +++++++ .../us_gov_east_1/aws-sagemaker-app.json | 210 +++ .../us_gov_east_1/aws-sagemaker-domain.json | 831 +++++++++ .../aws-secretsmanager-resourcepolicy.json | 35 + .../aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 260 --- .../aws-stepfunctions-statemachinealias.json | 173 -- .../us_gov_east_1/aws-xray-group.json | 105 ++ .../us_gov_east_1/aws-xray-samplingrule.json | 255 +++ .../providers/us_gov_west_1/__init__.py | 16 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../aws-batch-jobdefinition.json | 992 ++++++++++ .../us_gov_west_1/aws-ec2-keypair.json | 122 ++ .../us_gov_west_1/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../us_gov_west_1/aws-rds-dbcluster.json | 469 +++++ .../us_gov_west_1/aws-rds-dbinstance.json | 620 +++++++ .../us_gov_west_1/aws-sagemaker-app.json | 210 +++ .../us_gov_west_1/aws-sagemaker-domain.json | 831 +++++++++ .../us_gov_west_1/aws-sagemaker-model.json | 235 +++ .../aws-secretsmanager-resourcepolicy.json | 35 + .../aws-stepfunctions-activity.json | 98 - .../aws-stepfunctions-statemachine.json | 260 --- .../aws-stepfunctions-statemachinealias.json | 173 -- .../us_gov_west_1/aws-xray-group.json | 105 ++ .../us_gov_west_1/aws-xray-samplingrule.json | 255 +++ .../schemas/providers/us_west_1/__init__.py | 14 +- ...onalshift-zonalautoshiftconfiguration.json | 169 ++ .../us_west_1/aws-batch-jobdefinition.json | 992 ++++++++++ .../providers/us_west_1/aws-fms-policy.json | 472 +++++ .../providers/us_west_1/aws-glue-trigger.json | 172 ++ .../aws-kinesisfirehose-deliverystream.json | 1607 +++++++++++++++++ .../providers/us_west_1/aws-lambda-alias.json | 88 - .../aws-mediaconnect-flowoutput.json | 248 --- .../us_west_1/aws-rds-integration.json | 154 ++ .../us_west_1/aws-sagemaker-app.json | 210 +++ .../us_west_1/aws-sagemaker-domain.json | 831 +++++++++ .../us_west_1/aws-sagemaker-model.json | 235 +++ .../us_west_1/aws-sagemaker-space.json | 436 +++++ .../us_west_1/aws-sagemaker-userprofile.json | 592 ++++++ .../aws-secretsmanager-resourcepolicy.json | 35 + .../schemas/providers/us_west_2/__init__.py | 17 +- .../aws-cleanroomsml-trainingdataset.json | 249 +++ ...balaccelerator-crossaccountattachment.json | 123 ++ .../aws-inspectorv2-cisscanconfiguration.json | 245 +++ .../aws-organizations-organization.json | 88 - .../us_west_2/aws-route53-cidrcollection.json | 101 ++ 534 files changed, 150610 insertions(+), 13935 deletions(-) create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-batch-jobdefinition.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-globalaccelerator-crossaccountattachment.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-lambda-alias.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-rds-integration.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-app.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-model.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-space.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-userprofile.json rename src/cfnlint/data/schemas/providers/{ca_west_1/aws-ec2-subnetcidrblock.json => af_south_1/aws-secretsmanager-resourcepolicy.json} (50%) delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-stepfunctions-statemachine.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-arczonalshift-zonalautoshiftconfiguration.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-trafficmirrorfilterrule.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-lambda-alias.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-rds-integration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-secretsmanager-resourcepolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-stepfunctions-statemachine.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanroomsml-trainingdataset.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-dms-replicationconfig.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-inspectorv2-cisscanconfiguration.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-organizations-organization.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-sagemaker-app.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-space.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-shield-protectiongroup.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-workspacesweb-portal.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-workspacesweb-usersettings.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-batch-jobdefinition.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanroomsml-trainingdataset.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-globalaccelerator-crossaccountattachment.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-lambda-alias.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-integration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-app.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-model.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-space.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-secretsmanager-resourcepolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-stepfunctions-statemachine.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-batch-jobdefinition.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-kinesisfirehose-deliverystream.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-rds-integration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-sagemaker-app.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-sagemaker-model.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-sagemaker-space.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-batch-jobdefinition.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-organizations-organization.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-rds-integration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-app.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-model.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-space.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-userprofile.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-stepfunctions-statemachine.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-batch-jobdefinition.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-globalaccelerator-crossaccountattachment.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-lambda-alias.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-secretsmanager-resourcepolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-stepfunctions-statemachine.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-batch-jobdefinition.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanroomsml-trainingdataset.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-codeartifact-packagegroup.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-organizations-organization.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-rds-integration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sagemaker-app.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-model.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sagemaker-space.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-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-stepfunctions-statemachine.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-batch-jobdefinition.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanroomsml-trainingdataset.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-codeartifact-packagegroup.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-organizations-organization.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-rds-integration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-app.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-model.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-space.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-userprofile.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-stepfunctions-statemachine.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-globalaccelerator-crossaccountattachment.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-lambda-alias.json rename src/cfnlint/data/schemas/providers/{eu_central_1 => ap_southeast_3}/aws-rds-dbcluster.json (99%) rename src/cfnlint/data/schemas/providers/{cn_north_1 => ap_southeast_3}/aws-rds-dbinstance.json (99%) create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-app.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-model.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-space.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-secretsmanager-resourcepolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-stepfunctions-statemachine.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-arczonalshift-zonalautoshiftconfiguration.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-trafficmirrorfilterrule.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-lambda-alias.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-mediapackagev2-channel.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-mediapackagev2-originendpoint.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-secretsmanager-resourcepolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-stepfunctions-statemachine.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-batch-jobdefinition.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-lambda-alias.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-rds-integration.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-app.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-model.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-space.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-secretsmanager-resourcepolicy.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-arczonalshift-zonalautoshiftconfiguration.json rename src/cfnlint/data/schemas/providers/{eu_central_1 => ca_west_1}/aws-ec2-keypair.json (96%) create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-globalaccelerator-crossaccountattachment.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-kinesisfirehose-deliverystream.json rename src/cfnlint/data/schemas/providers/{cn_north_1 => ca_west_1}/aws-rds-dbcluster.json (99%) rename src/cfnlint/data/schemas/providers/{eu_central_1 => ca_west_1}/aws-rds-dbinstance.json (99%) create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-secretsmanager-resourcepolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-stepfunctions-statemachine.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-batch-jobdefinition.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-organizations-organization.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-app.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-model.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-stepfunctions-statemachine.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-xray-group.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-xray-samplingrule.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-batch-jobdefinition.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-keypair.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-fms-policy.json create 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-kinesisfirehose-deliverystream.json rename src/cfnlint/data/schemas/providers/{eu_south_2 => cn_northwest_1}/aws-rds-dbcluster.json (97%) create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-dbinstance.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-integration.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-app.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-model.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-secretsmanager-resourcepolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-stepfunctions-statemachine.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-xray-group.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-xray-samplingrule.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-cleanroomsml-trainingdataset.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-dms-replicationconfig.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-securitygroup.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-vpngatewayroutepropagation.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-eks-cluster.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-inspectorv2-cisscanconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-ivschat-room.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-organizations-organization.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-route53-cidrcollection.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-app.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-modelpackage.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-space.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-userprofile.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-secretsmanager-resourcepolicy.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-securityhub-securitycontrol.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-shield-protectiongroup.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-workspacesweb-portal.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-workspacesweb-usersettings.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-arczonalshift-zonalautoshiftconfiguration.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-trafficmirrorfilterrule.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-lambda-alias.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-secretsmanager-resourcepolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-stepfunctions-statemachine.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-cleanroomsml-trainingdataset.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-trafficmirrorfilterrule.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-lambda-alias.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-rds-integration.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-sagemaker-app.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-space.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-secretsmanager-resourcepolicy.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-batch-jobdefinition.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-keypair.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-globalaccelerator-crossaccountattachment.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-lambda-alias.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-rds-integration.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-sagemaker-app.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-sagemaker-model.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-sagemaker-space.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-secretsmanager-resourcepolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-stepfunctions-statemachine.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-batch-jobdefinition.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-controltower-enabledcontrol.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-globalaccelerator-crossaccountattachment.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-lambda-alias.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-app.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 delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-stepfunctions-statemachine.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-cleanroomsml-trainingdataset.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-ec2-trafficmirrorfilterrule.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-sagemaker-app.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-sagemaker-space.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-cleanroomsml-trainingdataset.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-kinesisfirehose-deliverystream.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-rds-integration.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-batch-jobdefinition.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-codeartifact-packagegroup.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-lambda-alias.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-rds-integration.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-sagemaker-app.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-model.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-sagemaker-space.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-secretsmanager-resourcepolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-stepfunctions-statemachine.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-batch-jobdefinition.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-keypair.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-globalaccelerator-crossaccountattachment.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-lambda-alias.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbcluster.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbinstance.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-sagemaker-app.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-secretsmanager-resourcepolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-stepfunctions-statemachine.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-arczonalshift-zonalautoshiftconfiguration.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-trafficmirrorfilterrule.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-lambda-alias.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-sagemaker-app.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-secretsmanager-resourcepolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-stepfunctions-statemachine.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-batch-jobdefinition.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-globalaccelerator-crossaccountattachment.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-lambda-alias.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-rds-integration.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-sagemaker-app.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-sagemaker-model.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-sagemaker-space.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-secretsmanager-resourcepolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-stepfunctions-statemachine.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-batch-jobdefinition.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-organizations-organization.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-rds-integration.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-app.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-model.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-space.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_1/aws-arczonalshift-autoshiftobservernotificationstatus.json rename src/cfnlint/data/schemas/providers/{eu_central_1 => us_east_1}/aws-bedrock-flow.json (100%) rename src/cfnlint/data/schemas/providers/{eu_central_1 => us_east_1}/aws-bedrock-flowalias.json (100%) rename src/cfnlint/data/schemas/providers/{eu_central_1 => us_east_1}/aws-bedrock-flowversion.json (100%) rename src/cfnlint/data/schemas/providers/{eu_central_1 => us_east_1}/aws-bedrock-prompt.json (100%) rename src/cfnlint/data/schemas/providers/{eu_central_1 => us_east_1}/aws-bedrock-promptversion.json (100%) create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-batch-jobdefinition.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-codeartifact-packagegroup.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-entityresolution-idmappingworkflow.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-globalaccelerator-crossaccountattachment.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-lambda-alias.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-rds-integration.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-sagemaker-model.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-secretsmanager-resourcepolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-stepfunctions-statemachine.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-batch-jobdefinition.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-keypair.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-kinesisfirehose-deliverystream.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-rds-dbcluster.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-rds-dbinstance.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-sagemaker-app.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-secretsmanager-resourcepolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-stepfunctions-statemachine.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-stepfunctions-statemachinealias.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-xray-group.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-xray-samplingrule.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-batch-jobdefinition.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-keypair.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-kinesisfirehose-deliverystream.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-rds-dbcluster.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-rds-dbinstance.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-sagemaker-app.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-model.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-secretsmanager-resourcepolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-stepfunctions-activity.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-stepfunctions-statemachine.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-stepfunctions-statemachinealias.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-xray-group.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-xray-samplingrule.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-arczonalshift-zonalautoshiftconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-batch-jobdefinition.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-kinesisfirehose-deliverystream.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-lambda-alias.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-mediaconnect-flowoutput.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-rds-integration.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-sagemaker-app.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-sagemaker-domain.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-sagemaker-model.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-sagemaker-space.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-secretsmanager-resourcepolicy.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-cleanroomsml-trainingdataset.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-globalaccelerator-crossaccountattachment.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-inspectorv2-cisscanconfiguration.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-organizations-organization.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-route53-cidrcollection.json diff --git a/docs/rules.md b/docs/rules.md index b5894de431..701b5e5c2b 100644 --- a/docs/rules.md +++ b/docs/rules.md @@ -46,7 +46,7 @@ To include these rules, use the `-e/include-experimental` argument when running ## Rules (_This documentation is generated by running `cfn-lint --update-documentation`, do not alter this manually_) -The following **221** rules are applied by this linter: +The following **223** rules are applied by this linter: | Rule ID | Title | Description | Config
(Name:Type:Default) | Source | Tags | | -------- | ----- | ----------- | ---------- | ------ | ---- | @@ -234,6 +234,7 @@ The following **221** rules are applied by this linter: | [W1011](../src/cfnlint/rules/parameters/DynamicReferenceSecret.py) | Instead of REFing a parameter for a secret use a dynamic reference | Instead of REFing a parameter for a secret use a dynamic reference. Solutions like SSM parameter store and secrets manager provide better security of sercrets | | [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/security-best-practices.html#creds) | `functions`,`dynamic reference`,`ref` | | [W1019](../src/cfnlint/rules/functions/SubParametersUsed.py) | Validate that parameters to a Fn::Sub are used | Validate that Fn::Sub Parameters are used | | [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html) | `functions`,`sub` | | [W1020](../src/cfnlint/rules/functions/SubUnneeded.py) | Sub isn't needed if it doesn't have a variable defined | Checks sub strings to see if a variable is defined. | | [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html) | `functions`,`sub` | +| [W1028](../src/cfnlint/rules/functions/IfUnsatisfiable.py) | Check Fn::If has a path that cannot be reached | Check Fn::If path can be reached | | [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-conditions.html#intrinsic-function-reference-conditions-if) | `functions`,`if` | | [W1030](../src/cfnlint/rules/functions/RefResolved.py) | Validate the values that come from a Ref function | Resolve the Ref and then validate the values against the schema | | [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) | `functions`,`ref` | | [W1031](../src/cfnlint/rules/functions/SubResolved.py) | Validate the values that come from a Fn::Sub function | Resolve the Fn::Sub and then validate the values against the schema | | [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html) | `functions`,`sub` | | [W1032](../src/cfnlint/rules/functions/JoinResolved.py) | Validate the values that come from a Fn::Join function | Resolve the Fn::Join and then validate the values against the schema | | [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-join.html) | `functions`,`join` | @@ -259,6 +260,7 @@ The following **221** rules are applied by this linter: | [W3034](../src/cfnlint/rules/parameters/NumberRange.py) | Check if parameter values are between min and max | Check if parameter values value being between the minimum and maximum | | [Source](https://github.com/aws-cloudformation/cfn-lint/blob/main/docs/cfn-schema-specification.md#number-size) | `resources`,`property`,`number`,`size` | | [W3037*](../src/cfnlint/rules/resources/iam/Permissions.py) | Check IAM Permission configuration | Check for valid IAM Permissions | | [Source](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_action.html) | `properties`,`iam`,`permissions` | | [W3045](../src/cfnlint/rules/resources/s3/AccessControlObsolete.py) | Controlling access to an S3 bucket should be done with bucket policies | Nearly all access control configurations can be more successfully achieved with bucket policies. Consider using bucket policies instead of access control. | | [Source](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) | `resources`,`s3` | +| [W3663](../src/cfnlint/rules/resources/lmbd/PermissionSourceAccount.py) | Validate SourceAccount is required property | When configuration a Lambda permission with a SourceArn that doesn't have an AccountId you should also specify the SourceAccount | | [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html#cfn-lambda-permission-sourceaccount) | `resources`,`lambda`,`permission` | | [W3687](../src/cfnlint/rules/resources/ectwo/SecurityGroupProtocolsAndPortsExclusive.py) | Validate that ports aren't specified for certain protocols | When using a protocol other than icmp, icmpv6, tcp, or udp the port ranges properties are ignored | | [Source]() | `resources` | | [W3688](../src/cfnlint/rules/resources/rds/DbClusterSnapshotIdentifier.py) | When restoring DBCluster certain properties are ignored | When creating a DBCluster extra properties are ignored and could result in drift | | [Source]() | `resources`,`rds` | | [W3689](../src/cfnlint/rules/resources/rds/DbClusterSourceDBClusterIdentifier.py) | When using a source DB certain properties are ignored | When creating a DBCluster from a source certain properties are ignored and could result in drift | | [Source]() | `resources`,`rds` | diff --git a/src/cfnlint/data/AdditionalSpecs/Policies.json b/src/cfnlint/data/AdditionalSpecs/Policies.json index f174426ef5..81312adb70 100644 --- a/src/cfnlint/data/AdditionalSpecs/Policies.json +++ b/src/cfnlint/data/AdditionalSpecs/Policies.json @@ -2,12 +2,12 @@ "VPCPolicyServiceActionMap": { "Amazon DynamoDB For VPC Policies": [ "DescribeContinuousBackups", - "DescribeBackup", "DescribeReservedCapacity", + "DescribeBackup", "PurchaseReservedCapacityOfferings", "ListBackups", - "DeleteItem", "Query", + "DeleteItem", "DeleteBackup", "DescribeTable", "CreateTable", @@ -1542,6 +1542,9 @@ "CreateConfiguredTable", "CreateConfiguredTableAnalysisRule", "CreateConfiguredTableAssociation", + "CreateConfiguredTableAssociationAnalysisRule", + "CreateIdMappingTable", + "CreateIdNamespaceAssociation", "CreateMembership", "CreatePrivacyBudgetTemplate", "DeleteAnalysisTemplate", @@ -1550,6 +1553,9 @@ "DeleteConfiguredTable", "DeleteConfiguredTableAnalysisRule", "DeleteConfiguredTableAssociation", + "DeleteConfiguredTableAssociationAnalysisRule", + "DeleteIdMappingTable", + "DeleteIdNamespaceAssociation", "DeleteMember", "DeleteMembership", "DeletePrivacyBudgetTemplate", @@ -1557,11 +1563,15 @@ "GetCollaboration", "GetCollaborationAnalysisTemplate", "GetCollaborationConfiguredAudienceModelAssociation", + "GetCollaborationIdNamespaceAssociation", "GetCollaborationPrivacyBudgetTemplate", "GetConfiguredAudienceModelAssociation", "GetConfiguredTable", "GetConfiguredTableAnalysisRule", "GetConfiguredTableAssociation", + "GetConfiguredTableAssociationAnalysisRule", + "GetIdMappingTable", + "GetIdNamespaceAssociation", "GetMembership", "GetPrivacyBudgetTemplate", "GetProtectedQuery", @@ -1570,12 +1580,15 @@ "ListAnalysisTemplates", "ListCollaborationAnalysisTemplates", "ListCollaborationConfiguredAudienceModelAssociations", + "ListCollaborationIdNamespaceAssociations", "ListCollaborationPrivacyBudgetTemplates", "ListCollaborationPrivacyBudgets", "ListCollaborations", "ListConfiguredAudienceModelAssociations", "ListConfiguredTableAssociations", "ListConfiguredTables", + "ListIdMappingTables", + "ListIdNamespaceAssociations", "ListMembers", "ListMemberships", "ListPrivacyBudgetTemplates", @@ -1583,6 +1596,7 @@ "ListProtectedQueries", "ListSchemas", "ListTagsForResource", + "PopulateIdMappingTable", "PreviewPrivacyImpact", "StartProtectedQuery", "TagResource", @@ -1593,6 +1607,9 @@ "UpdateConfiguredTable", "UpdateConfiguredTableAnalysisRule", "UpdateConfiguredTableAssociation", + "UpdateConfiguredTableAssociationAnalysisRule", + "UpdateIdMappingTable", + "UpdateIdNamespaceAssociation", "UpdateMembership", "UpdatePrivacyBudgetTemplate", "UpdateProtectedQuery" @@ -4051,6 +4068,7 @@ "DeleteListener", "DeleteLoadBalancer", "DeleteRule", + "DeleteSharedTrustStoreAssociation", "DeleteTargetGroup", "DeleteTrustStore", "DeregisterTargets", @@ -4068,6 +4086,7 @@ "DescribeTrustStoreAssociations", "DescribeTrustStoreRevocations", "DescribeTrustStores", + "GetResourcePolicy", "GetTrustStoreCaCertificatesBundle", "GetTrustStoreRevocationContent", "ModifyListener", @@ -4627,7 +4646,8 @@ "UpdateIdNamespace", "UpdateMatchingWorkflow", "UpdateSchemaMapping", - "UseIdNamespace" + "UseIdNamespace", + "UseWorkflow" ], "HasResource": true, "StringPrefix": "entityresolution", @@ -8963,17 +8983,20 @@ "CreateIndex", "CreateView", "DeleteIndex", + "DeleteResourcePolicy", "DeleteView", "DisassociateDefaultView", "GetAccountLevelServiceConfiguration", "GetDefaultView", "GetIndex", + "GetResourcePolicy", "GetView", "ListIndexes", "ListIndexesForMembers", "ListSupportedResourceTypes", "ListTagsForResource", "ListViews", + "PutResourcePolicy", "Search", "TagResource", "UntagResource", @@ -13498,6 +13521,7 @@ "ReplicateInstance", "ResumeContact", "ResumeContactRecording", + "SearchAgentStatuses", "SearchAvailablePhoneNumbers", "SearchContactFlowModules", "SearchContactFlows", @@ -13510,6 +13534,7 @@ "SearchResourceTags", "SearchRoutingProfiles", "SearchSecurityProfiles", + "SearchUserHierarchyGroups", "SearchUsers", "SearchVocabularies", "SendChatIntegrationEvent", @@ -15391,7 +15416,7 @@ "DescribePullThroughCacheRules", "DescribeRegistry", "DescribeRepositories", - "DescribeRepositoryCreationTemplate", + "DescribeRepositoryCreationTemplates", "GetAuthorizationToken", "GetDownloadUrlForLayer", "GetLifecyclePolicy", @@ -15416,6 +15441,7 @@ "TagResource", "UntagResource", "UpdatePullThroughCacheRule", + "UpdateRepositoryCreationTemplate", "UploadLayerPart", "ValidatePullThroughCacheRule" ], @@ -15689,6 +15715,7 @@ "aws:TagKeys", "eks:accessEntryType", "eks:accessScope", + "eks:authenticationMode", "eks:bootstrapClusterCreatorAdminPermissions", "eks:bootstrapSelfManagedAddons", "eks:clientId", @@ -15698,6 +15725,7 @@ "eks:namespaces", "eks:policyArn", "eks:principalArn", + "eks:supportType", "eks:username" ] }, @@ -19439,6 +19467,8 @@ "ARNRegex": "^arn:aws:quicksight:.+", "Actions": [ "AccountConfigurations", + "BatchCreateTopicReviewedAnswer", + "BatchDeleteTopicReviewedAnswer", "CancelIngestion", "CreateAccountCustomization", "CreateAccountSubscription", @@ -19573,6 +19603,7 @@ "ListThemeVersions", "ListThemes", "ListTopicRefreshSchedules", + "ListTopicReviewedAnswers", "ListTopics", "ListUserGroups", "ListUsers", @@ -21320,7 +21351,7 @@ "DeleteMonitoringSchedule", "DeleteNotebookInstance", "DeleteNotebookInstanceLifecycleConfig", - "DeleteOptimization", + "DeleteOptimizationJob", "DeletePipeline", "DeleteProject", "DeleteRecord", @@ -22539,6 +22570,7 @@ "DeleteRetentionPolicy", "DeleteSmtpGateway", "DeleteUser", + "DeliverToMailbox", "DeregisterFromWorkMail", "DeregisterMailDomain", "DescribeEmailMonitoringConfiguration", diff --git a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json index ba38ac9957..2859a665c7 100644 --- a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json @@ -1 +1 @@ -{"etag": "\"e307e8687bfecd606f0e899afa9dc391\"", "url": "https://schema.cloudformation.eu-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"9803cd49a39c0242a4ad8eb0191eab45\"", "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 c7eac535ff..62c639b69c 100644 --- a/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json @@ -1 +1 @@ -{"etag": "\"4ef0c1c5720349e0aa42d8c03f2190c6\"", "url": "https://schema.cloudformation.cn-north-1.amazonaws.com.cn/CloudformationSchema.zip"} +{"etag": "\"545a2e386f408b460e715a64afc02f89\"", "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 07632650b6..81e98d32c5 100644 --- a/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json @@ -1 +1 @@ -{"etag": "\"2d862f85e75942a5867c34b7bfc3c77c\"", "url": "https://schema.cloudformation.us-gov-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"adc47e832d22252094b7dcea7c2f1b4e\"", "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 206f3f4cc8..eb58eec8ae 100644 --- a/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json @@ -1 +1 @@ -{"etag": "\"6914ce33d190b3e1e349df96fe4db5f9\"", "url": "https://schema.cloudformation.me-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"6e9999558c393f442d9ba387465ce62c\"", "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 3f07e1ffbd..65ee3aff79 100644 --- a/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json @@ -1 +1 @@ -{"etag": "\"c4159999fa081b0705a8cc19ad90fb11\"", "url": "https://schema.cloudformation.us-gov-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"147a9e4435099f00592a3b70886ade27\"", "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 39d6212283..d711906e7f 100644 --- a/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json @@ -1 +1 @@ -{"etag": "\"5e3092644eadd30dbd152151fb69bae6\"", "url": "https://schema.cloudformation.me-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"9b02af3df67df4a6036e59ca37fc538f\"", "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 bafb2493b6..8f3f758396 100644 --- a/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json @@ -1 +1 @@ -{"etag": "\"5d4e9225c20358129f764181a0c1935a\"", "url": "https://schema.cloudformation.eu-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"2e59ca52e0b29b76304f8aac77631d2a\"", "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 a39e047d7f..7d1dcfe1eb 100644 --- a/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json @@ -1 +1 @@ -{"etag": "\"86ec8b36787356cf267f5f432a71b88a\"", "url": "https://schema.cloudformation.cn-northwest-1.amazonaws.com.cn/CloudformationSchema.zip"} +{"etag": "\"aac26c4cfbd85421f70584472c9ec339\"", "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 b1be8a6d57..7369ac4aff 100644 --- a/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json @@ -1 +1 @@ -{"etag": "\"91d93202afea003b5e2abc8b51a7f3a2\"", "url": "https://schema.cloudformation.af-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"e5b22d8e6190976bddd5a75d35b71cc3\"", "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 1fbef7b8ba..902d42cada 100644 --- a/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json @@ -1 +1 @@ -{"etag": "\"990578a386215d4d7dd180c403b696f2\"", "url": "https://schema.cloudformation.us-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"2eacb9c1c8af9badf7c850705e5bfef7\"", "url": "https://schema.cloudformation.us-west-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json b/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json index 3b580ffd15..ee41614291 100644 --- a/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json @@ -1 +1 @@ -{"etag": "\"178d4817771d0ee17f6c632e6263e86d\"", "url": "https://schema.cloudformation.eu-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"403a6861f4b466ca723b8ac8773d39fb\"", "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 5d5e5182fe..bf380fe2cc 100644 --- a/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json @@ -1 +1 @@ -{"etag": "\"f542e9eb0c8ef1fda4e9accd88d04ec1\"", "url": "https://schema.cloudformation.ap-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"857fa46e7bef7e89387a5223fd79c54e\"", "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 acda2e9698..fa9a3bd45a 100644 --- a/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json @@ -1 +1 @@ -{"etag": "\"7a84558ed3d76ce6d02ea6d1bf326431\"", "url": "https://schema.cloudformation.ap-southeast-4.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"315c4e5423a34e8da4a60c19e25b53c2\"", "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 bf212e983d..68da235d10 100644 --- a/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json @@ -1 +1 @@ -{"etag": "\"727a48603159871b28e5fb26effb6547\"", "url": "https://schema.cloudformation.us-east-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"f02fcc751bcfe67c509c543ca650c502\"", "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 e13c9b5e63..18a59a4781 100644 --- a/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json @@ -1 +1 @@ -{"etag": "\"aecc2aa6763a28865b7f195a594bef80\"", "url": "https://schema.cloudformation.ap-southeast-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"7fc57e5fdc9baa87af11acbd26f518b6\"", "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 9310bea2bb..ffd2fc1fab 100644 --- a/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json @@ -1 +1 @@ -{"etag": "\"4b19eb4dbe6984e7ed3559819f5bfb5e\"", "url": "https://schema.cloudformation.ap-northeast-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"b4cf630848c1f6ae4ceeab700d382e57\"", "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 5b30eda34e..36e3f81a7a 100644 --- a/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json @@ -1 +1 @@ -{"etag": "\"947213c21450c8444848f8c5b4846dda\"", "url": "https://schema.cloudformation.ap-southeast-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"acfa3abf92762cdb15acba693b47bb56\"", "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 21edc339eb..ebe7b399ac 100644 --- a/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json @@ -1 +1 @@ -{"etag": "\"32c73a70fccaa874203ff2eb8914a077\"", "url": "https://schema.cloudformation.ap-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"2387587bd18f62263fbd8b18964c2893\"", "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 5cb476ac80..a235d74732 100644 --- a/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json @@ -1 +1 @@ -{"etag": "\"ffccd5671a87d141834e154742dae609\"", "url": "https://schema.cloudformation.sa-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"aff4b6dd22ba6bf060ea30413a98626e\"", "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 7b3dea361a..a0c19546ee 100644 --- a/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json @@ -1 +1 @@ -{"etag": "\"463e5a886dddb06914d469bac109b95d\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"9a69cd2c1d2224d63868367fe47f881d\"", "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 0f02ea2a61..f02f98e024 100644 --- a/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json @@ -1 +1 @@ -{"etag": "\"b6c9ba76f037123fce8547681caf6c02\"", "url": "https://schema.cloudformation.ca-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"30e128ba535a2abc0fa303bb18ef7b4e\"", "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 e97ecd5e5d..543b9f4280 100644 --- a/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json @@ -1 +1 @@ -{"etag": "\"9767f723613c3d641cbb8690ae37bd53\"", "url": "https://schema.cloudformation.eu-central-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"bdb422f347944c5e905a3283887babbe\"", "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 2d7195f252..51015fe135 100644 --- a/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json @@ -1 +1 @@ -{"etag": "\"d886ddf5ed68d76eab9d79cec3239472\"", "url": "https://schema.cloudformation.eu-north-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"266ca2507c38b2101f01f149832f72bb\"", "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 3a83950a0f..8d379914d3 100644 --- a/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json @@ -1 +1 @@ -{"etag": "\"1147baab40516d3a031370d4bc77285e\"", "url": "https://schema.cloudformation.eu-south-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"7688067dca1f174d2b4b560b0ce7df9b\"", "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 5d2eef745a..a1d1d068d5 100644 --- a/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json @@ -1 +1 @@ -{"etag": "\"1949bdac883ab18547ad1e2d650edd28\"", "url": "https://schema.cloudformation.ca-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"0d5da0e46d36584a549f620b5f683886\"", "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 41f7440a3a..2a14282f00 100644 --- a/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json @@ -1 +1 @@ -{"etag": "\"4a0b2550d58f623905a8d24bbff19624\"", "url": "https://schema.cloudformation.eu-west-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"4e2aff80857633bf97aabe28da5ab2d0\"", "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 8cea828c59..e5a37f1043 100644 --- a/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json @@ -1 +1 @@ -{"etag": "\"b0fd8e1f3ca585fa159eadb2f2bf2853\"", "url": "https://schema.cloudformation.ap-northeast-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"ed26e4d2a2e7752356639d5b8b61168f\"", "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 dbd95e1dc6..4b269f7b44 100644 --- a/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json @@ -1 +1 @@ -{"etag": "\"88bea80c58b26f8df4bc055c49d9c882\"", "url": "https://schema.cloudformation.us-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"ec483e0222a4f80be7a780038e2071e4\"", "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 c615442241..c8e75e655d 100644 --- a/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json @@ -1 +1 @@ -{"etag": "\"6003f4951dd1c96e9665789bc27c9f3a\"", "url": "https://schema.cloudformation.ap-south-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"fe8e183d1f25e9b53157e7207c90b210\"", "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 84d990106b..337dcdefd7 100644 --- a/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json @@ -1 +1 @@ -{"etag": "\"1b6e43838754f853a2011f6bdbbb9d65\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"bf4182d4a20d8f80f97810b06ca54597\"", "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 87dd75f580..b859d49fa5 100644 --- a/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json @@ -1 +1 @@ -{"etag": "\"98d51c8c91b0f43c1899379c3adf8de1\"", "url": "https://schema.cloudformation.il-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"2546cf1aa221a622d83e40629c85b195\"", "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 f52ce9d497..3f1da0f2d5 100644 --- a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json @@ -1 +1 @@ -{"etag": "\"328becea04695b57ad9bf56e66193c6a\"", "url": "https://schema.cloudformation.eu-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"1aa4602885a3fe30635853261c6e42c6\"", "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 8ea8670957..0e9aa30814 100644 --- a/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json @@ -1 +1 @@ -{"etag": "\"7aba9bac1f6a83caceaad3b7a055c6e7\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"efadb871cc9184c747a8a532df781be6\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/Serverless/ManagedPolicies.json b/src/cfnlint/data/Serverless/ManagedPolicies.json index 6cc362a27f..48100fb15a 100644 --- a/src/cfnlint/data/Serverless/ManagedPolicies.json +++ b/src/cfnlint/data/Serverless/ManagedPolicies.json @@ -1022,6 +1022,7 @@ "AmazonWorkSpacesSecureBrowserReadOnly": "arn:aws:iam::aws:policy/AmazonWorkSpacesSecureBrowserReadOnly", "AmazonWorkSpacesSelfServiceAccess": "arn:aws:iam::aws:policy/AmazonWorkSpacesSelfServiceAccess", "AmazonWorkSpacesServiceAccess": "arn:aws:iam::aws:policy/AmazonWorkSpacesServiceAccess", + "AmazonWorkSpacesThinClientReadOnlyAccess": "arn:aws:iam::aws:policy/AmazonWorkSpacesThinClientReadOnlyAccess", "AmazonWorkSpacesWebReadOnly": "arn:aws:iam::aws:policy/AmazonWorkSpacesWebReadOnly", "AmazonWorkSpacesWebServiceRolePolicy": "arn:aws:iam::aws:policy/aws-service-role/AmazonWorkSpacesWebServiceRolePolicy", "AmazonWorkspacesPCAAccess": "arn:aws:iam::aws:policy/AmazonWorkspacesPCAAccess", diff --git a/src/cfnlint/data/schemas/extensions/aws_rds_dbcluster/engine_version.json b/src/cfnlint/data/schemas/extensions/aws_rds_dbcluster/engine_version.json index 3d01e43500..95d05c85c8 100644 --- a/src/cfnlint/data/schemas/extensions/aws_rds_dbcluster/engine_version.json +++ b/src/cfnlint/data/schemas/extensions/aws_rds_dbcluster/engine_version.json @@ -55,6 +55,7 @@ "5.7.mysql_aurora.2.11.4", "5.7.mysql_aurora.2.11.4", "5.7.mysql_aurora.2.11.5", + "5.7.mysql_aurora.2.11.6", "5.7.mysql_aurora.2.12.0", "5.7.mysql_aurora.2.12.1", "5.7.mysql_aurora.2.12.2", @@ -70,7 +71,8 @@ "8.0.mysql_aurora.3.05.2", "8.0.mysql_aurora.3.06.0", "8.0.mysql_aurora.3.06.1", - "8.0.mysql_aurora.3.07.0" + "8.0.mysql_aurora.3.07.0", + "8.0.mysql_aurora.3.07.1" ] } } diff --git a/src/cfnlint/data/schemas/extensions/aws_rds_dbinstance/engine_version.json b/src/cfnlint/data/schemas/extensions/aws_rds_dbinstance/engine_version.json index f821fb6564..7f16237127 100644 --- a/src/cfnlint/data/schemas/extensions/aws_rds_dbinstance/engine_version.json +++ b/src/cfnlint/data/schemas/extensions/aws_rds_dbinstance/engine_version.json @@ -71,6 +71,7 @@ "5.7.mysql_aurora.2.11.4", "5.7.mysql_aurora.2.11.4", "5.7.mysql_aurora.2.11.5", + "5.7.mysql_aurora.2.11.6", "5.7.mysql_aurora.2.12.0", "5.7.mysql_aurora.2.12.1", "5.7.mysql_aurora.2.12.2", @@ -86,7 +87,8 @@ "8.0.mysql_aurora.3.05.2", "8.0.mysql_aurora.3.06.0", "8.0.mysql_aurora.3.06.1", - "8.0.mysql_aurora.3.07.0" + "8.0.mysql_aurora.3.07.0", + "8.0.mysql_aurora.3.07.1" ] } } @@ -183,7 +185,9 @@ "15.00.4312.2.v1", "15.00.4322.2.v1", "15.00.4345.5.v1", - "16.00.4085.2.v1" + "15.00.4365.2.v1", + "16.00.4085.2.v1", + "16.00.4125.3.v1" ] } } @@ -217,7 +221,9 @@ "15.00.4312.2.v1", "15.00.4322.2.v1", "15.00.4345.5.v1", - "16.00.4085.2.v1" + "15.00.4365.2.v1", + "16.00.4085.2.v1", + "16.00.4125.3.v1" ] } } @@ -251,7 +257,9 @@ "15.00.4312.2.v1", "15.00.4322.2.v1", "15.00.4345.5.v1", - "16.00.4085.2.v1" + "15.00.4365.2.v1", + "16.00.4085.2.v1", + "16.00.4125.3.v1" ] } } diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalingpolicy/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalingpolicy/boto.json index 86e8c4227e..e4f8c9a905 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalingpolicy/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalingpolicy/boto.json @@ -32,7 +32,9 @@ "NeptuneReaderAverageCPUUtilization", "RDSReaderAverageCPUUtilization", "RDSReaderAverageDatabaseConnections", + "SageMakerInferenceComponentConcurrentRequestsPerCopyHighResolution", "SageMakerInferenceComponentInvocationsPerCopy", + "SageMakerVariantConcurrentRequestsPerModelHighResolution", "SageMakerVariantInvocationsPerInstance", "SageMakerVariantProvisionedConcurrencyUtilization", "WorkSpacesAverageUserSessionsCapacityUtilization" diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_launchtemplate/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_launchtemplate/boto.json index a119291679..ecea2908fb 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_launchtemplate/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_launchtemplate/boto.json @@ -82,6 +82,7 @@ "instance-event-window", "internet-gateway", "ipam", + "ipam-external-resource-verification-token", "ipam-pool", "ipam-resource-discovery", "ipam-resource-discovery-association", @@ -134,7 +135,6 @@ "volume", "vpc", "vpc-block-public-access-exclusion", - "vpc-encryption-control", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-connection-device-type", 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 277363dbe0..faaf35a05d 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/af_south_1/__init__.py @@ -888,7 +888,6 @@ "aws-appsync-graphqlschema.json", "aws-appsync-resolver.json", "aws-appsync-sourceapiassociation.json", - "aws-arczonalshift-zonalautoshiftconfiguration.json", "aws-athena-datacatalog.json", "aws-athena-namedquery.json", "aws-athena-preparedstatement.json", @@ -908,7 +907,6 @@ "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-ce-anomalymonitor.json", @@ -1194,7 +1192,6 @@ "aws-fis-experimenttemplate.json", "aws-fis-targetaccountconfiguration.json", "aws-fms-notificationchannel.json", - "aws-fms-policy.json", "aws-fms-resourceset.json", "aws-fsx-datarepositoryassociation.json", "aws-fsx-filesystem.json", @@ -1202,7 +1199,6 @@ "aws-fsx-storagevirtualmachine.json", "aws-fsx-volume.json", "aws-globalaccelerator-accelerator.json", - "aws-globalaccelerator-crossaccountattachment.json", "aws-globalaccelerator-endpointgroup.json", "aws-globalaccelerator-listener.json", "aws-glue-classifier.json", @@ -1222,7 +1218,6 @@ "aws-glue-schemaversionmetadata.json", "aws-glue-securityconfiguration.json", "aws-glue-table.json", - "aws-glue-trigger.json", "aws-glue-workflow.json", "aws-groundstation-config.json", "aws-groundstation-dataflowendpointgroup.json", @@ -1264,7 +1259,6 @@ "aws-internetmonitor-monitor.json", "aws-kinesis-stream.json", "aws-kinesisanalyticsv2-application.json", - "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", "aws-kms-key.json", "aws-kms-replicakey.json", @@ -1275,6 +1269,7 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", + "aws-lambda-alias.json", "aws-lambda-codesigningconfig.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", @@ -1387,7 +1382,6 @@ "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", "aws-rds-globalcluster.json", - "aws-rds-integration.json", "aws-rds-optiongroup.json", "aws-redshift-cluster.json", "aws-redshift-clusterparametergroup.json", @@ -1438,10 +1432,8 @@ "aws-s3outposts-bucket.json", "aws-s3outposts-bucketpolicy.json", "aws-s3outposts-endpoint.json", - "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-featuregroup.json", @@ -1449,7 +1441,6 @@ "aws-sagemaker-imageversion.json", "aws-sagemaker-inferenceexperiment.json", "aws-sagemaker-mlflowtrackingserver.json", - "aws-sagemaker-model.json", "aws-sagemaker-modelcard.json", "aws-sagemaker-modelpackage.json", "aws-sagemaker-modelpackagegroup.json", @@ -1457,13 +1448,10 @@ "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-sagemaker-pipeline.json", "aws-sagemaker-project.json", - "aws-sagemaker-space.json", - "aws-sagemaker-userprofile.json", "aws-sagemaker-workteam.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", @@ -1527,6 +1515,8 @@ "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", diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-arczonalshift-zonalautoshiftconfiguration.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-arczonalshift-zonalautoshiftconfiguration.json new file mode 100644 index 0000000000..3bdd4887b2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-arczonalshift-zonalautoshiftconfiguration.json @@ -0,0 +1,169 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "allOf": [ + { + "required": [ + "ResourceIdentifier" + ] + } + ], + "anyOf": [ + { + "required": [ + "ZonalAutoshiftStatus" + ] + }, + { + "required": [ + "PracticeRunConfiguration" + ] + } + ] + } + ], + "createOnlyProperties": [ + "/properties/ResourceIdentifier" + ], + "definitions": { + "ControlCondition": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "maxLength": 1024, + "minLength": 8, + "pattern": "^arn:.*$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/ControlConditionType" + } + }, + "required": [ + "AlarmIdentifier", + "Type" + ], + "type": "object" + }, + "ControlConditionType": { + "enum": [ + "CLOUDWATCH" + ], + "type": "string" + }, + "PracticeRunConfiguration": { + "additionalProperties": false, + "properties": { + "BlockedDates": { + "insertionOrder": false, + "items": { + "maxLength": 10, + "minLength": 10, + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockedWindows": { + "insertionOrder": false, + "items": { + "maxLength": 19, + "minLength": 19, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}-(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockingAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "OutcomeAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "OutcomeAlarms" + ], + "type": "object" + }, + "ZonalAutoshiftStatus": { + "enum": [ + "ENABLED" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "arc-zonal-shift:CreatePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "arc-zonal-shift:DeletePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration" + ] + }, + "list": { + "permissions": [ + "arc-zonal-shift:ListManagedResources" + ] + }, + "read": { + "permissions": [ + "arc-zonal-shift:GetManagedResource" + ] + }, + "update": { + "permissions": [ + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdatePracticeRunConfiguration", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms" + ] + } + }, + "primaryIdentifier": [ + "/properties/ResourceIdentifier" + ], + "properties": { + "PracticeRunConfiguration": { + "$ref": "#/definitions/PracticeRunConfiguration" + }, + "ResourceIdentifier": { + "maxLength": 1024, + "minLength": 8, + "type": "string" + }, + "ZonalAutoshiftStatus": { + "$ref": "#/definitions/ZonalAutoshiftStatus" + } + }, + "tagging": { + "taggable": false + }, + "typeName": "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-batch-jobdefinition.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-batch-jobdefinition.json new file mode 100644 index 0000000000..2d82031cd0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-batch-jobdefinition.json @@ -0,0 +1,992 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tags", + "/properties/JobDefinitionName" + ], + "definitions": { + "AuthorizationConfig": { + "additionalProperties": false, + "properties": { + "AccessPointId": { + "type": "string" + }, + "Iam": { + "type": "string" + } + }, + "type": "object" + }, + "ContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "FargatePlatformConfiguration": { + "$ref": "#/definitions/FargatePlatformConfiguration" + }, + "Image": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "JobRoleArn": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Memory": { + "type": "integer" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + }, + "Vcpus": { + "type": "integer" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Device": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "HostPath": { + "type": "string" + }, + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EcsProperties": { + "additionalProperties": false, + "properties": { + "TaskProperties": { + "items": { + "$ref": "#/definitions/EcsTaskProperties" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "TaskProperties" + ], + "type": "object" + }, + "EcsTaskProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "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": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EfsVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "AuthorizationConfig": { + "$ref": "#/definitions/AuthorizationConfig" + }, + "FileSystemId": { + "type": "string" + }, + "RootDirectory": { + "type": "string" + }, + "TransitEncryption": { + "type": "string" + }, + "TransitEncryptionPort": { + "type": "integer" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EksContainer": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Env": { + "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": { + "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": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Requests": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "type": "object" + }, + "EksContainerSecurityContext": { + "additionalProperties": false, + "properties": { + "AllowPrivilegeEscalation": { + "type": "boolean" + }, + "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" + }, + "EksProperties": { + "additionalProperties": false, + "properties": { + "PodProperties": { + "$ref": "#/definitions/PodProperties" + } + }, + "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" + }, + "FargatePlatformConfiguration": { + "additionalProperties": false, + "properties": { + "PlatformVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ImagePullSecret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "LinuxParameters": { + "additionalProperties": false, + "properties": { + "Devices": { + "items": { + "$ref": "#/definitions/Device" + }, + "type": "array", + "uniqueItems": false + }, + "InitProcessEnabled": { + "type": "boolean" + }, + "MaxSwap": { + "type": "integer" + }, + "SharedMemorySize": { + "type": "integer" + }, + "Swappiness": { + "type": "integer" + }, + "Tmpfs": { + "items": { + "$ref": "#/definitions/Tmpfs" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "SecretOptions": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "Metadata": { + "additionalProperties": false, + "properties": { + "Labels": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "type": "object" + }, + "MountPoints": { + "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": { + "items": { + "$ref": "#/definitions/NodeRangeProperty" + }, + "type": "array", + "uniqueItems": false + }, + "NumNodes": { + "type": "integer" + } + }, + "required": [ + "MainNode", + "NodeRangeProperties", + "NumNodes" + ], + "type": "object" + }, + "NodeRangeProperty": { + "additionalProperties": false, + "properties": { + "Container": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "TargetNodes": { + "type": "string" + } + }, + "required": [ + "TargetNodes" + ], + "type": "object" + }, + "PodProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "DnsPolicy": { + "type": "string" + }, + "HostNetwork": { + "type": "boolean" + }, + "ImagePullSecrets": { + "items": { + "$ref": "#/definitions/ImagePullSecret" + }, + "type": "array", + "uniqueItems": false + }, + "InitContainers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "Metadata": { + "$ref": "#/definitions/Metadata" + }, + "ServiceAccountName": { + "type": "string" + }, + "ShareProcessNamespace": { + "type": "boolean" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/EksVolume" + }, + "type": "array", + "uniqueItems": false + } + }, + "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": { + "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": [ + "ValueFrom", + "Name" + ], + "type": "object" + }, + "TaskContainerDependency": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "ContainerName": { + "type": "string" + } + }, + "required": [ + "Condition", + "ContainerName" + ], + "type": "object" + }, + "TaskContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "DependsOn": { + "items": { + "$ref": "#/definitions/TaskContainerDependency" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "Essential": { + "type": "boolean" + }, + "Image": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "Name": { + "type": "string" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Timeout": { + "additionalProperties": false, + "properties": { + "AttemptDurationSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tmpfs": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "MountOptions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Size": { + "type": "integer" + } + }, + "required": [ + "Size", + "ContainerPath" + ], + "type": "object" + }, + "Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "integer" + } + }, + "required": [ + "SoftLimit", + "HardLimit", + "Name" + ], + "type": "object" + }, + "Volumes": { + "additionalProperties": false, + "properties": { + "EfsVolumeConfiguration": { + "$ref": "#/definitions/EfsVolumeConfiguration" + }, + "Host": { + "$ref": "#/definitions/VolumesHost" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "VolumesHost": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContainerProperties": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "EksProperties": { + "$ref": "#/definitions/EksProperties" + }, + "Id": { + "type": "string" + }, + "JobDefinitionName": { + "type": "string" + }, + "NodeProperties": { + "$ref": "#/definitions/NodeProperties" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "PlatformCapabilities": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "PropagateTags": { + "type": "boolean" + }, + "RetryStrategy": { + "$ref": "#/definitions/RetryStrategy" + }, + "SchedulingPriority": { + "type": "integer" + }, + "Tags": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Timeout": { + "$ref": "#/definitions/Timeout" + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type" + ], + "typeName": "AWS::Batch::JobDefinition" +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-fms-policy.json new file mode 100644 index 0000000000..8456d02fd6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-fms-policy.json @@ -0,0 +1,472 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkAclCommonPolicy": { + "additionalProperties": false, + "properties": { + "NetworkAclEntrySet": { + "$ref": "#/definitions/NetworkAclEntrySet" + } + }, + "required": [ + "NetworkAclEntrySet" + ], + "type": "object" + }, + "NetworkAclEntry": { + "additionalProperties": false, + "properties": { + "CidrBlock": { + "pattern": "^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))$", + "type": "string" + }, + "Egress": { + "type": "boolean" + }, + "IcmpTypeCode": { + "additionalProperties": false, + "properties": { + "Code": { + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "Type": { + "maximum": 255, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Code", + "Type" + ], + "type": "object" + }, + "Ipv6CidrBlock": { + "pattern": "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))(/(1[0-2]|[0-9]))?$", + "type": "string" + }, + "PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + }, + "To": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "From", + "To" + ], + "type": "object" + }, + "Protocol": { + "pattern": "^(tcp|udp|icmp|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", + "type": "string" + }, + "RuleAction": { + "enum": [ + "allow", + "deny" + ], + "type": "string" + } + }, + "required": [ + "Egress", + "Protocol", + "RuleAction" + ], + "type": "object" + }, + "NetworkAclEntryList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/NetworkAclEntry" + }, + "type": "array" + }, + "NetworkAclEntrySet": { + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "FirstEntries" + ] + }, + { + "required": [ + "LastEntries" + ] + } + ], + "properties": { + "FirstEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + }, + "ForceRemediateForFirstEntries": { + "type": "boolean" + }, + "ForceRemediateForLastEntries": { + "type": "boolean" + }, + "LastEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + } + }, + "required": [ + "ForceRemediateForFirstEntries", + "ForceRemediateForLastEntries" + ], + "type": "object" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + }, + { + "required": [ + "NetworkAclCommonPolicy" + ] + } + ], + "properties": { + "NetworkAclCommonPolicy": { + "$ref": "#/definitions/NetworkAclCommonPolicy" + }, + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL", + "NETWORK_ACL_COMMON" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-globalaccelerator-crossaccountattachment.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-globalaccelerator-crossaccountattachment.json new file mode 100644 index 0000000000..31881ad480 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-globalaccelerator-crossaccountattachment.json @@ -0,0 +1,123 @@ +{ + "additionalProperties": false, + "definitions": { + "Resource": { + "additionalProperties": false, + "properties": { + "EndpointId": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "EndpointId" + ], + "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": [ + "globalaccelerator:DescribeCrossAccountAttachment", + "globalaccelerator:CreateCrossAccountAttachment", + "globalaccelerator:TagResource" + ] + }, + "delete": { + "permissions": [ + "globalaccelerator:DescribeCrossAccountAttachment", + "globalaccelerator:DeleteCrossAccountAttachment" + ] + }, + "list": { + "permissions": [ + "globalaccelerator:ListCrossAccountAttachments" + ] + }, + "read": { + "permissions": [ + "globalaccelerator:DescribeCrossAccountAttachment" + ] + }, + "update": { + "permissions": [ + "globalaccelerator:UpdateCrossAccountAttachment", + "globalaccelerator:DescribeCrossAccountAttachment", + "globalaccelerator:TagResource", + "globalaccelerator:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AttachmentArn" + ], + "properties": { + "AttachmentArn": { + "type": "string" + }, + "Name": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]{0,64}$", + "type": "string" + }, + "Principals": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Resources": { + "items": { + "$ref": "#/definitions/Resource" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/AttachmentArn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-globalaccelerator", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::GlobalAccelerator::CrossAccountAttachment", + "writeOnlyProperties": [ + "/properties/Resources/*/Region" + ] +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-glue-trigger.json new file mode 100644 index 0000000000..974dd89b9f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-glue-trigger.json @@ -0,0 +1,172 @@ +{ + "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/af_south_1/aws-kinesisfirehose-deliverystream.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-kinesisfirehose-deliverystream.json new file mode 100644 index 0000000000..37b2adaff0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-kinesisfirehose-deliverystream.json @@ -0,0 +1,1607 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeliveryStreamName", + "/properties/DeliveryStreamType", + "/properties/ElasticsearchDestinationConfiguration/VpcConfiguration", + "/properties/AmazonopensearchserviceDestinationConfiguration/VpcConfiguration", + "/properties/AmazonOpenSearchServerlessDestinationConfiguration/VpcConfiguration", + "/properties/KinesisStreamSourceConfiguration", + "/properties/MSKSourceConfiguration", + "/properties/SnowflakeDestinationConfiguration/SnowflakeVpcConfiguration" + ], + "definitions": { + "AmazonOpenSearchServerlessBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonOpenSearchServerlessDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonOpenSearchServerlessBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CollectionEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "relationshipRef": { + "propertyPath": "/properties/CollectionEndpoint", + "typeName": "AWS::OpenSearchServerless::Collection" + }, + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonOpenSearchServerlessRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonOpenSearchServerlessRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonopensearchserviceBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonopensearchserviceRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "Connectivity": { + "enum": [ + "PUBLIC", + "PRIVATE" + ], + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "Connectivity" + ], + "type": "object" + }, + "BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": { + "relationshipRef": { + "propertyPath": "/properties/LogGroupName", + "typeName": "AWS::Logs::LogGroup" + }, + "type": "string" + }, + "LogStreamName": { + "relationshipRef": { + "propertyPath": "/properties/LogStreamName", + "typeName": "AWS::Logs::LogStream" + }, + "type": "string" + } + }, + "type": "object" + }, + "CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableColumns": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableName": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/SchemaConfiguration" + } + }, + "type": "object" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + }, + "KeyType": { + "enum": [ + "AWS_OWNED_CMK", + "CUSTOMER_MANAGED_CMK" + ], + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/OpenXJsonSerDe" + } + }, + "type": "object" + }, + "DocumentIdOptions": { + "additionalProperties": false, + "properties": { + "DefaultDocumentIdFormat": { + "enum": [ + "FIREHOSE_DEFAULT", + "NO_DOCUMENT_ID" + ], + "type": "string" + } + }, + "required": [ + "DefaultDocumentIdFormat" + ], + "type": "object" + }, + "DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + } + }, + "type": "object" + }, + "ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/ElasticsearchBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Elasticsearch::Domain" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::OpenSearchService::Domain" + } + } + ], + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/ElasticsearchRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "ElasticsearchRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KMSEncryptionConfig": { + "$ref": "#/definitions/KMSEncryptionConfig" + }, + "NoEncryptionConfig": { + "enum": [ + "NoEncryption" + ], + "type": "string" + } + }, + "type": "object" + }, + "ExtendedS3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "CustomTimeZone": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "DataFormatConversionConfiguration": { + "$ref": "#/definitions/DataFormatConversionConfiguration" + }, + "DynamicPartitioningConfiguration": { + "$ref": "#/definitions/DynamicPartitioningConfiguration" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "FileExtension": { + "maxLength": 128, + "minLength": 0, + "pattern": "^$|\\.[0-9a-z!\\-_.*'()]+", + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "HiveJsonSerDe": { + "additionalProperties": false, + "properties": { + "TimestampFormats": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "HttpEndpointCommonAttribute": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeValue" + ], + "type": "object" + }, + "HttpEndpointConfiguration": { + "additionalProperties": false, + "properties": { + "AccessKey": { + "maxLength": 4096, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Url": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "HttpEndpointDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/HttpEndpointConfiguration" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RequestConfiguration": { + "$ref": "#/definitions/HttpEndpointRequestConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "EndpointConfiguration", + "S3Configuration" + ], + "type": "object" + }, + "HttpEndpointRequestConfiguration": { + "additionalProperties": false, + "properties": { + "CommonAttributes": { + "items": { + "$ref": "#/definitions/HttpEndpointCommonAttribute" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "ContentEncoding": { + "enum": [ + "NONE", + "GZIP" + ], + "type": "string" + } + }, + "type": "object" + }, + "InputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Deserializer": { + "$ref": "#/definitions/Deserializer" + } + }, + "type": "object" + }, + "KMSEncryptionConfig": { + "additionalProperties": false, + "properties": { + "AWSKMSKeyARN": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + } + }, + "required": [ + "AWSKMSKeyARN" + ], + "type": "object" + }, + "KinesisStreamSourceConfiguration": { + "additionalProperties": false, + "properties": { + "KinesisStreamARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "KinesisStreamARN" + ], + "type": "object" + }, + "MSKSourceConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AuthenticationConfiguration" + }, + "MSKClusterARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::MSK::Cluster" + }, + "type": "string" + }, + "TopicName": { + "maxLength": 255, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\._\\-]+", + "type": "string" + } + }, + "required": [ + "MSKClusterARN", + "TopicName", + "AuthenticationConfiguration" + ], + "type": "object" + }, + "OpenXJsonSerDe": { + "additionalProperties": false, + "properties": { + "CaseInsensitive": { + "type": "boolean" + }, + "ColumnToJsonKeyMappings": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ConvertDotsInJsonKeysToUnderscores": { + "type": "boolean" + } + }, + "type": "object" + }, + "OrcSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "BloomFilterColumns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BloomFilterFalsePositiveProbability": { + "type": "number" + }, + "Compression": { + "type": "string" + }, + "DictionaryKeyThreshold": { + "type": "number" + }, + "EnablePadding": { + "type": "boolean" + }, + "FormatVersion": { + "type": "string" + }, + "PaddingTolerance": { + "type": "number" + }, + "RowIndexStride": { + "type": "integer" + }, + "StripeSizeBytes": { + "type": "integer" + } + }, + "type": "object" + }, + "OutputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Serializer": { + "$ref": "#/definitions/Serializer" + } + }, + "type": "object" + }, + "ParquetSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "Compression": { + "type": "string" + }, + "EnableDictionaryCompression": { + "type": "boolean" + }, + "MaxPaddingBytes": { + "type": "integer" + }, + "PageSizeBytes": { + "type": "integer" + }, + "WriterVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Processors": { + "items": { + "$ref": "#/definitions/Processor" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Processor": { + "additionalProperties": false, + "properties": { + "Parameters": { + "items": { + "$ref": "#/definitions/ProcessorParameter" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "enum": [ + "RecordDeAggregation", + "Decompression", + "CloudWatchLogProcessing", + "Lambda", + "MetadataExtraction", + "AppendDelimiterToRecord" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ProcessorParameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Lambda::Function" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Lambda::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "RedshiftDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterJDBCURL": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "CopyCommand": { + "$ref": "#/definitions/CopyCommand" + }, + "Password": { + "maxLength": 512, + "minLength": 6, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RedshiftRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "Username": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "S3Configuration", + "ClusterJDBCURL", + "CopyCommand", + "RoleARN" + ], + "type": "object" + }, + "RedshiftRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "RetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "SchemaConfiguration": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Database" + }, + "type": "string" + }, + "Region": { + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "TableName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Table" + }, + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "SecretsManagerConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecretARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::SecretsManager::Secret" + }, + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Serializer": { + "additionalProperties": false, + "properties": { + "OrcSerDe": { + "$ref": "#/definitions/OrcSerDe" + }, + "ParquetSerDe": { + "$ref": "#/definitions/ParquetSerDe" + } + }, + "type": "object" + }, + "SnowflakeDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "AccountUrl": { + "maxLength": 2048, + "minLength": 24, + "pattern": ".+?\\.snowflakecomputing\\.com", + "type": "string" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ContentColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "DataLoadingOption": { + "enum": [ + "JSON_MAPPING", + "VARIANT_CONTENT_MAPPING", + "VARIANT_CONTENT_AND_METADATA_MAPPING" + ], + "type": "string" + }, + "Database": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyPassphrase": { + "maxLength": 255, + "minLength": 7, + "type": "string" + }, + "MetaDataColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "PrivateKey": { + "maxLength": 4096, + "minLength": 256, + "pattern": "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$", + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SnowflakeRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDataOnly", + "AllData" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "Schema": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "SnowflakeRoleConfiguration": { + "$ref": "#/definitions/SnowflakeRoleConfiguration" + }, + "SnowflakeVpcConfiguration": { + "$ref": "#/definitions/SnowflakeVpcConfiguration" + }, + "Table": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "User": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "AccountUrl", + "Database", + "Schema", + "Table", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "SnowflakeRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "SnowflakeRoleConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SnowflakeRole": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "SnowflakeVpcConfiguration": { + "additionalProperties": false, + "properties": { + "PrivateLinkVpceId": { + "maxLength": 255, + "minLength": 47, + "pattern": "([a-zA-Z0-9\\-\\_]+\\.){2,3}vpce\\.[a-zA-Z0-9\\-]*\\.vpce-svc\\-[a-zA-Z0-9\\-]{17}$", + "type": "string" + } + }, + "required": [ + "PrivateLinkVpceId" + ], + "type": "object" + }, + "SplunkBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "SplunkDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/SplunkBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "HECAcknowledgmentTimeoutInSeconds": { + "maximum": 600, + "minimum": 180, + "type": "integer" + }, + "HECEndpoint": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "HECEndpointType": { + "enum": [ + "Raw", + "Event" + ], + "type": "string" + }, + "HECToken": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SplunkRetryOptions" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "HECEndpoint", + "S3Configuration", + "HECEndpointType" + ], + "type": "object" + }, + "SplunkRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "VpcConfiguration": { + "additionalProperties": false, + "properties": { + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/GroupId", + "typeName": "AWS::EC2::SecurityGroup" + }, + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::Subnet" + }, + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "RoleARN", + "SubnetIds", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "firehose:CreateDeliveryStream", + "firehose:DescribeDeliveryStream", + "iam:GetRole", + "iam:PassRole", + "kms:CreateGrant", + "kms:DescribeKey" + ] + }, + "delete": { + "permissions": [ + "firehose:DeleteDeliveryStream", + "firehose:DescribeDeliveryStream", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + }, + "list": { + "permissions": [ + "firehose:ListDeliveryStreams" + ] + }, + "read": { + "permissions": [ + "firehose:DescribeDeliveryStream", + "firehose:ListTagsForDeliveryStream" + ] + }, + "update": { + "permissions": [ + "firehose:UpdateDestination", + "firehose:DescribeDeliveryStream", + "firehose:StartDeliveryStreamEncryption", + "firehose:StopDeliveryStreamEncryption", + "firehose:ListTagsForDeliveryStream", + "firehose:TagDeliveryStream", + "firehose:UntagDeliveryStream", + "kms:CreateGrant", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + } + }, + "primaryIdentifier": [ + "/properties/DeliveryStreamName" + ], + "properties": { + "AmazonOpenSearchServerlessDestinationConfiguration": { + "$ref": "#/definitions/AmazonOpenSearchServerlessDestinationConfiguration" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "$ref": "#/definitions/AmazonopensearchserviceDestinationConfiguration" + }, + "Arn": { + "type": "string" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/DeliveryStreamEncryptionConfigurationInput" + }, + "DeliveryStreamName": { + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9._-]+", + "type": "string" + }, + "DeliveryStreamType": { + "enum": [ + "DirectPut", + "KinesisStreamAsSource", + "MSKAsSource" + ], + "type": "string" + }, + "ElasticsearchDestinationConfiguration": { + "$ref": "#/definitions/ElasticsearchDestinationConfiguration" + }, + "ExtendedS3DestinationConfiguration": { + "$ref": "#/definitions/ExtendedS3DestinationConfiguration" + }, + "HttpEndpointDestinationConfiguration": { + "$ref": "#/definitions/HttpEndpointDestinationConfiguration" + }, + "KinesisStreamSourceConfiguration": { + "$ref": "#/definitions/KinesisStreamSourceConfiguration" + }, + "MSKSourceConfiguration": { + "$ref": "#/definitions/MSKSourceConfiguration" + }, + "RedshiftDestinationConfiguration": { + "$ref": "#/definitions/RedshiftDestinationConfiguration" + }, + "S3DestinationConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SnowflakeDestinationConfiguration": { + "$ref": "#/definitions/SnowflakeDestinationConfiguration" + }, + "SplunkDestinationConfiguration": { + "$ref": "#/definitions/SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "typeName": "AWS::KinesisFirehose::DeliveryStream" +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-lambda-alias.json deleted file mode 100644 index 4a291518b6..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_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/af_south_1/aws-rds-integration.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-integration.json new file mode 100644 index 0000000000..8bb00c0dfe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-integration.json @@ -0,0 +1,154 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SourceArn", + "/properties/TargetArn", + "/properties/KMSKeyId", + "/properties/AdditionalEncryptionContext" + ], + "definitions": { + "EncryptionContextMap": { + "additionalProperties": false, + "patternProperties": { + "^[\\s\\S]*$": { + "maxLength": 131072, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "handlers": { + "create": { + "permissions": [ + "rds:CreateIntegration", + "rds:DescribeIntegrations", + "rds:AddTagsToResource", + "kms:CreateGrant", + "kms:DescribeKey", + "redshift:CreateInboundIntegration" + ] + }, + "delete": { + "permissions": [ + "rds:DeleteIntegration", + "rds:DescribeIntegrations" + ] + }, + "list": { + "permissions": [ + "rds:DescribeIntegrations" + ] + }, + "read": { + "permissions": [ + "rds:DescribeIntegrations" + ] + }, + "update": { + "permissions": [ + "rds:DescribeIntegrations", + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource", + "rds:ModifyIntegration" + ] + } + }, + "primaryIdentifier": [ + "/properties/IntegrationArn" + ], + "properties": { + "AdditionalEncryptionContext": { + "$ref": "#/definitions/EncryptionContextMap" + }, + "CreateTime": { + "type": "string" + }, + "DataFilter": { + "maxLength": 25600, + "minLength": 1, + "pattern": "[a-zA-Z0-9_ \"\\\\\\-$,*.:?+\\/]*", + "type": "string" + }, + "Description": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + }, + "IntegrationArn": { + "type": "string" + }, + "IntegrationName": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "KMSKeyId": { + "type": "string" + }, + "SourceArn": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "TargetArn": { + "type": "string" + } + }, + "propertyTransform": { + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/SourceArn": "$lowercase(SourceArn)" + }, + "readOnlyProperties": [ + "/properties/IntegrationArn", + "/properties/CreateTime" + ], + "required": [ + "SourceArn", + "TargetArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-app.json new file mode 100644 index 0000000000..d565ffb835 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-app.json @@ -0,0 +1,210 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/Tags", + "/properties/ResourceSpec" + ], + "definitions": { + "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" + }, + "SageMakerImageArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:DescribeApp" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DescribeApp" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListApps" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeApp", + "sagemaker:DescribeApp" + ] + } + }, + "primaryIdentifier": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName" + ], + "properties": { + "AppArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app/.*", + "type": "string" + }, + "AppName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "RStudioServerPro", + "RSessionGateway", + "Canvas" + ], + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "ResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/AppArn" + ], + "required": [ + "AppName", + "AppType", + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::App", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-domain.json new file mode 100644 index 0000000000..5cd4ea45fa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-domain.json @@ -0,0 +1,831 @@ +{ + "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" + } + }, + "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" + } + }, + "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/af_south_1/aws-sagemaker-model.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-model.json new file mode 100644 index 0000000000..ef768bc0ed --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-model.json @@ -0,0 +1,235 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ExecutionRoleArn", + "/properties/EnableNetworkIsolation", + "/properties/InferenceExecutionConfig", + "/properties/PrimaryContainer", + "/properties/ModelName", + "/properties/VpcConfig", + "/properties/Containers" + ], + "definitions": { + "ContainerDefinition": { + "additionalProperties": false, + "properties": { + "ContainerHostname": { + "type": "string" + }, + "Environment": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Image": { + "type": "string" + }, + "ImageConfig": { + "$ref": "#/definitions/ImageConfig" + }, + "InferenceSpecificationName": { + "type": "string" + }, + "Mode": { + "type": "string" + }, + "ModelDataSource": { + "$ref": "#/definitions/ModelDataSource" + }, + "ModelDataUrl": { + "type": "string" + }, + "ModelPackageName": { + "type": "string" + }, + "MultiModelConfig": { + "$ref": "#/definitions/MultiModelConfig" + } + }, + "type": "object" + }, + "ImageConfig": { + "additionalProperties": false, + "properties": { + "RepositoryAccessMode": { + "type": "string" + }, + "RepositoryAuthConfig": { + "$ref": "#/definitions/RepositoryAuthConfig" + } + }, + "required": [ + "RepositoryAccessMode" + ], + "type": "object" + }, + "InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "ModelAccessConfig": { + "additionalProperties": false, + "properties": { + "AcceptEula": { + "type": "boolean" + } + }, + "required": [ + "AcceptEula" + ], + "type": "object" + }, + "ModelDataSource": { + "additionalProperties": false, + "properties": { + "S3DataSource": { + "$ref": "#/definitions/S3DataSource" + } + }, + "required": [ + "S3DataSource" + ], + "type": "object" + }, + "MultiModelConfig": { + "additionalProperties": false, + "properties": { + "ModelCacheSetting": { + "type": "string" + } + }, + "type": "object" + }, + "RepositoryAuthConfig": { + "additionalProperties": false, + "properties": { + "RepositoryCredentialsProviderArn": { + "type": "string" + } + }, + "required": [ + "RepositoryCredentialsProviderArn" + ], + "type": "object" + }, + "S3DataSource": { + "additionalProperties": false, + "properties": { + "CompressionType": { + "type": "string" + }, + "ModelAccessConfig": { + "$ref": "#/definitions/ModelAccessConfig" + }, + "S3DataType": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "S3Uri", + "S3DataType", + "CompressionType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Subnets", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/ContainerDefinition" + }, + "type": "array", + "uniqueItems": false + }, + "EnableNetworkIsolation": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/InferenceExecutionConfig" + }, + "ModelName": { + "type": "string" + }, + "PrimaryContainer": { + "$ref": "#/definitions/ContainerDefinition" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcConfig": { + "$ref": "#/definitions/VpcConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SageMaker::Model" +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-space.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-space.json new file mode 100644 index 0000000000..1ad92e7aa4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-space.json @@ -0,0 +1,436 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/SpaceName", + "/properties/SpaceSharingSettings", + "/properties/OwnershipSettings" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "TensorBoard", + "RStudioServerPro", + "RSessionGateway", + "JupyterLab", + "CodeEditor" + ], + "type": "string" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystem": { + "additionalProperties": false, + "properties": { + "EFSFileSystem": { + "$ref": "#/definitions/EFSFileSystem" + } + }, + "type": "object" + }, + "CustomFileSystems": { + "items": { + "$ref": "#/definitions/CustomFileSystem" + }, + "maxItems": 1, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "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" + }, + "EFSFileSystem": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EbsStorageSettings": { + "additionalProperties": false, + "properties": { + "EbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "EbsVolumeSizeInGb" + ], + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "OwnershipSettings": { + "additionalProperties": false, + "properties": { + "OwnerUserProfileName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "required": [ + "OwnerUserProfileName" + ], + "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" + }, + "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" + }, + "SpaceCodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "SpaceJupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "SpaceSettings": { + "additionalProperties": false, + "properties": { + "AppType": { + "$ref": "#/definitions/AppType" + }, + "CodeEditorAppSettings": { + "$ref": "#/definitions/SpaceCodeEditorAppSettings" + }, + "CustomFileSystems": { + "$ref": "#/definitions/CustomFileSystems" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/SpaceJupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/SpaceStorageSettings" + } + }, + "type": "object" + }, + "SpaceSharingSettings": { + "additionalProperties": false, + "properties": { + "SharingType": { + "enum": [ + "Private", + "Shared" + ], + "type": "string" + } + }, + "required": [ + "SharingType" + ], + "type": "object" + }, + "SpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "EbsStorageSettings": { + "$ref": "#/definitions/EbsStorageSettings" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateSpace", + "sagemaker:DescribeSpace" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteSpace", + "sagemaker:DescribeSpace" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListSpaces" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeSpace" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateSpace", + "sagemaker:DescribeSpace" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId", + "/properties/SpaceName" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "OwnershipSettings": { + "$ref": "#/definitions/OwnershipSettings" + }, + "SpaceArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:space/.*", + "type": "string" + }, + "SpaceDisplayName": { + "maxLength": 64, + "pattern": "^(?!\\s*$).+", + "type": "string" + }, + "SpaceName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SpaceSettings": { + "$ref": "#/definitions/SpaceSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + }, + "SpaceSharingSettings": { + "$ref": "#/definitions/SpaceSharingSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/SpaceArn", + "/properties/Url" + ], + "required": [ + "DomainId", + "SpaceName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SageMaker::Space", + "writeOnlyProperties": [ + "/properties/SpaceSettings", + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..c2c0daf9fe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-userprofile.json @@ -0,0 +1,592 @@ +{ + "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" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "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" + }, + "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/ca_west_1/aws-ec2-subnetcidrblock.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-secretsmanager-resourcepolicy.json similarity index 50% rename from src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-subnetcidrblock.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-secretsmanager-resourcepolicy.json index 6c58c1df37..92fc7be26c 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-subnetcidrblock.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-secretsmanager-resourcepolicy.json @@ -1,20 +1,26 @@ { "additionalProperties": false, "createOnlyProperties": [ - "/properties/Ipv6CidrBlock", - "/properties/SubnetId" + "/properties/SecretId" ], "primaryIdentifier": [ "/properties/Id" ], "properties": { + "BlockPublicPolicy": { + "type": "boolean" + }, "Id": { "type": "string" }, - "Ipv6CidrBlock": { - "type": "string" + "ResourcePolicy": { + "format": "json", + "type": [ + "object", + "string" + ] }, - "SubnetId": { + "SecretId": { "type": "string" } }, @@ -22,8 +28,8 @@ "/properties/Id" ], "required": [ - "SubnetId", - "Ipv6CidrBlock" + "SecretId", + "ResourcePolicy" ], - "typeName": "AWS::EC2::SubnetCidrBlock" + "typeName": "AWS::SecretsManager::ResourcePolicy" } diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-stepfunctions-activity.json deleted file mode 100644 index 7aaf191ed1..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-stepfunctions-activity.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateActivity", - "states:TagResource" - ] - }, - "delete": { - "permissions": [ - "states:DescribeActivity", - "states:DeleteActivity" - ] - }, - "list": { - "permissions": [ - "states:ListActivities" - ] - }, - "read": { - "permissions": [ - "states:DescribeActivity", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:ListTagsForResource", - "states:TagResource", - "states:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::Activity" -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-stepfunctions-statemachine.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-stepfunctions-statemachine.json deleted file mode 100644 index c8a1b0f42e..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-stepfunctions-statemachine.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/StateMachineName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StateMachineName", - "/properties/StateMachineType" - ], - "definitions": { - "CloudWatchLogsLogGroup": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Definition": { - "minProperties": 1, - "type": "object" - }, - "DefinitionSubstitutions": { - "additionalProperties": false, - "minProperties": 1, - "patternProperties": { - ".*": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer" - }, - { - "type": "boolean" - } - ] - } - }, - "type": "object" - }, - "LogDestination": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsLogGroup": { - "$ref": "#/definitions/CloudWatchLogsLogGroup" - } - }, - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "Destinations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LogDestination" - }, - "minItems": 1, - "type": "array" - }, - "IncludeExecutionData": { - "type": "boolean" - }, - "Level": { - "enum": [ - "ALL", - "ERROR", - "FATAL", - "OFF" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TracingConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateStateMachine", - "states:DescribeStateMachine", - "states:TagResource", - "iam:PassRole", - "s3:GetObject" - ] - }, - "delete": { - "permissions": [ - "states:DeleteStateMachine", - "states:DescribeStateMachine" - ] - }, - "list": { - "permissions": [ - "states:ListStateMachines" - ] - }, - "read": { - "permissions": [ - "states:DescribeStateMachine", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:UpdateStateMachine", - "states:TagResource", - "states:UntagResource", - "states:ListTagsForResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Definition": { - "$ref": "#/definitions/Definition" - }, - "DefinitionS3Location": { - "$ref": "#/definitions/S3Location" - }, - "DefinitionString": { - "maxLength": 1048576, - "minLength": 1, - "type": "string" - }, - "DefinitionSubstitutions": { - "$ref": "#/definitions/DefinitionSubstitutions" - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "RoleArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineName": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "StateMachineRevisionId": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineType": { - "enum": [ - "STANDARD", - "EXPRESS" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - }, - "TracingConfiguration": { - "$ref": "#/definitions/TracingConfiguration" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/StateMachineRevisionId" - ], - "required": [ - "RoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::StateMachine", - "writeOnlyProperties": [ - "/properties/Definition", - "/properties/DefinitionS3Location", - "/properties/DefinitionSubstitutions" - ] -} 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 e440383beb..38710b9910 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py @@ -870,7 +870,6 @@ "aws-appsync-graphqlschema.json", "aws-appsync-resolver.json", "aws-appsync-sourceapiassociation.json", - "aws-arczonalshift-zonalautoshiftconfiguration.json", "aws-athena-datacatalog.json", "aws-athena-namedquery.json", "aws-athena-preparedstatement.json", @@ -1072,6 +1071,7 @@ "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", + "aws-ec2-trafficmirrorfilterrule.json", "aws-ec2-trafficmirrortarget.json", "aws-ec2-transitgateway.json", "aws-ec2-transitgatewayconnect.json", @@ -1191,7 +1191,6 @@ "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", @@ -1261,7 +1260,6 @@ "aws-kinesisanalytics-applicationoutput.json", "aws-kinesisanalyticsv2-application.json", "aws-kinesisanalyticsv2-applicationoutput.json", - "aws-kinesisfirehose-deliverystream.json", "aws-kinesisvideo-signalingchannel.json", "aws-kinesisvideo-stream.json", "aws-kms-alias.json", @@ -1274,6 +1272,7 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", + "aws-lambda-alias.json", "aws-lambda-codesigningconfig.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", @@ -1370,7 +1369,6 @@ "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", "aws-rds-globalcluster.json", - "aws-rds-integration.json", "aws-rds-optiongroup.json", "aws-redshift-cluster.json", "aws-redshift-clusterparametergroup.json", @@ -1453,7 +1451,6 @@ "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", @@ -1510,6 +1507,8 @@ "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", diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-arczonalshift-zonalautoshiftconfiguration.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-arczonalshift-zonalautoshiftconfiguration.json new file mode 100644 index 0000000000..3bdd4887b2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-arczonalshift-zonalautoshiftconfiguration.json @@ -0,0 +1,169 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "allOf": [ + { + "required": [ + "ResourceIdentifier" + ] + } + ], + "anyOf": [ + { + "required": [ + "ZonalAutoshiftStatus" + ] + }, + { + "required": [ + "PracticeRunConfiguration" + ] + } + ] + } + ], + "createOnlyProperties": [ + "/properties/ResourceIdentifier" + ], + "definitions": { + "ControlCondition": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "maxLength": 1024, + "minLength": 8, + "pattern": "^arn:.*$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/ControlConditionType" + } + }, + "required": [ + "AlarmIdentifier", + "Type" + ], + "type": "object" + }, + "ControlConditionType": { + "enum": [ + "CLOUDWATCH" + ], + "type": "string" + }, + "PracticeRunConfiguration": { + "additionalProperties": false, + "properties": { + "BlockedDates": { + "insertionOrder": false, + "items": { + "maxLength": 10, + "minLength": 10, + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockedWindows": { + "insertionOrder": false, + "items": { + "maxLength": 19, + "minLength": 19, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}-(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockingAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "OutcomeAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "OutcomeAlarms" + ], + "type": "object" + }, + "ZonalAutoshiftStatus": { + "enum": [ + "ENABLED" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "arc-zonal-shift:CreatePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "arc-zonal-shift:DeletePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration" + ] + }, + "list": { + "permissions": [ + "arc-zonal-shift:ListManagedResources" + ] + }, + "read": { + "permissions": [ + "arc-zonal-shift:GetManagedResource" + ] + }, + "update": { + "permissions": [ + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdatePracticeRunConfiguration", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms" + ] + } + }, + "primaryIdentifier": [ + "/properties/ResourceIdentifier" + ], + "properties": { + "PracticeRunConfiguration": { + "$ref": "#/definitions/PracticeRunConfiguration" + }, + "ResourceIdentifier": { + "maxLength": 1024, + "minLength": 8, + "type": "string" + }, + "ZonalAutoshiftStatus": { + "$ref": "#/definitions/ZonalAutoshiftStatus" + } + }, + "tagging": { + "taggable": false + }, + "typeName": "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-trafficmirrorfilterrule.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-trafficmirrorfilterrule.json deleted file mode 100644 index 95028d4c8a..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-trafficmirrorfilterrule.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/TrafficMirrorFilterId" - ], - "definitions": { - "TrafficMirrorPortRange": { - "additionalProperties": false, - "properties": { - "FromPort": { - "type": "integer" - }, - "ToPort": { - "type": "integer" - } - }, - "required": [ - "FromPort", - "ToPort" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Description": { - "type": "string" - }, - "DestinationCidrBlock": { - "type": "string" - }, - "DestinationPortRange": { - "$ref": "#/definitions/TrafficMirrorPortRange" - }, - "Id": { - "type": "string" - }, - "Protocol": { - "type": "integer" - }, - "RuleAction": { - "type": "string" - }, - "RuleNumber": { - "type": "integer" - }, - "SourceCidrBlock": { - "type": "string" - }, - "SourcePortRange": { - "$ref": "#/definitions/TrafficMirrorPortRange" - }, - "TrafficDirection": { - "type": "string" - }, - "TrafficMirrorFilterId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "RuleAction", - "SourceCidrBlock", - "RuleNumber", - "DestinationCidrBlock", - "TrafficMirrorFilterId", - "TrafficDirection" - ], - "typeName": "AWS::EC2::TrafficMirrorFilterRule" -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-glue-trigger.json new file mode 100644 index 0000000000..974dd89b9f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-glue-trigger.json @@ -0,0 +1,172 @@ +{ + "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/ap_east_1/aws-kinesisfirehose-deliverystream.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-kinesisfirehose-deliverystream.json new file mode 100644 index 0000000000..37b2adaff0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-kinesisfirehose-deliverystream.json @@ -0,0 +1,1607 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeliveryStreamName", + "/properties/DeliveryStreamType", + "/properties/ElasticsearchDestinationConfiguration/VpcConfiguration", + "/properties/AmazonopensearchserviceDestinationConfiguration/VpcConfiguration", + "/properties/AmazonOpenSearchServerlessDestinationConfiguration/VpcConfiguration", + "/properties/KinesisStreamSourceConfiguration", + "/properties/MSKSourceConfiguration", + "/properties/SnowflakeDestinationConfiguration/SnowflakeVpcConfiguration" + ], + "definitions": { + "AmazonOpenSearchServerlessBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonOpenSearchServerlessDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonOpenSearchServerlessBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CollectionEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "relationshipRef": { + "propertyPath": "/properties/CollectionEndpoint", + "typeName": "AWS::OpenSearchServerless::Collection" + }, + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonOpenSearchServerlessRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonOpenSearchServerlessRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonopensearchserviceBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonopensearchserviceRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "Connectivity": { + "enum": [ + "PUBLIC", + "PRIVATE" + ], + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "Connectivity" + ], + "type": "object" + }, + "BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": { + "relationshipRef": { + "propertyPath": "/properties/LogGroupName", + "typeName": "AWS::Logs::LogGroup" + }, + "type": "string" + }, + "LogStreamName": { + "relationshipRef": { + "propertyPath": "/properties/LogStreamName", + "typeName": "AWS::Logs::LogStream" + }, + "type": "string" + } + }, + "type": "object" + }, + "CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableColumns": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableName": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/SchemaConfiguration" + } + }, + "type": "object" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + }, + "KeyType": { + "enum": [ + "AWS_OWNED_CMK", + "CUSTOMER_MANAGED_CMK" + ], + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/OpenXJsonSerDe" + } + }, + "type": "object" + }, + "DocumentIdOptions": { + "additionalProperties": false, + "properties": { + "DefaultDocumentIdFormat": { + "enum": [ + "FIREHOSE_DEFAULT", + "NO_DOCUMENT_ID" + ], + "type": "string" + } + }, + "required": [ + "DefaultDocumentIdFormat" + ], + "type": "object" + }, + "DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + } + }, + "type": "object" + }, + "ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/ElasticsearchBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Elasticsearch::Domain" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::OpenSearchService::Domain" + } + } + ], + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/ElasticsearchRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "ElasticsearchRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KMSEncryptionConfig": { + "$ref": "#/definitions/KMSEncryptionConfig" + }, + "NoEncryptionConfig": { + "enum": [ + "NoEncryption" + ], + "type": "string" + } + }, + "type": "object" + }, + "ExtendedS3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "CustomTimeZone": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "DataFormatConversionConfiguration": { + "$ref": "#/definitions/DataFormatConversionConfiguration" + }, + "DynamicPartitioningConfiguration": { + "$ref": "#/definitions/DynamicPartitioningConfiguration" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "FileExtension": { + "maxLength": 128, + "minLength": 0, + "pattern": "^$|\\.[0-9a-z!\\-_.*'()]+", + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "HiveJsonSerDe": { + "additionalProperties": false, + "properties": { + "TimestampFormats": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "HttpEndpointCommonAttribute": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeValue" + ], + "type": "object" + }, + "HttpEndpointConfiguration": { + "additionalProperties": false, + "properties": { + "AccessKey": { + "maxLength": 4096, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Url": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "HttpEndpointDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/HttpEndpointConfiguration" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RequestConfiguration": { + "$ref": "#/definitions/HttpEndpointRequestConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "EndpointConfiguration", + "S3Configuration" + ], + "type": "object" + }, + "HttpEndpointRequestConfiguration": { + "additionalProperties": false, + "properties": { + "CommonAttributes": { + "items": { + "$ref": "#/definitions/HttpEndpointCommonAttribute" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "ContentEncoding": { + "enum": [ + "NONE", + "GZIP" + ], + "type": "string" + } + }, + "type": "object" + }, + "InputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Deserializer": { + "$ref": "#/definitions/Deserializer" + } + }, + "type": "object" + }, + "KMSEncryptionConfig": { + "additionalProperties": false, + "properties": { + "AWSKMSKeyARN": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + } + }, + "required": [ + "AWSKMSKeyARN" + ], + "type": "object" + }, + "KinesisStreamSourceConfiguration": { + "additionalProperties": false, + "properties": { + "KinesisStreamARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "KinesisStreamARN" + ], + "type": "object" + }, + "MSKSourceConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AuthenticationConfiguration" + }, + "MSKClusterARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::MSK::Cluster" + }, + "type": "string" + }, + "TopicName": { + "maxLength": 255, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\._\\-]+", + "type": "string" + } + }, + "required": [ + "MSKClusterARN", + "TopicName", + "AuthenticationConfiguration" + ], + "type": "object" + }, + "OpenXJsonSerDe": { + "additionalProperties": false, + "properties": { + "CaseInsensitive": { + "type": "boolean" + }, + "ColumnToJsonKeyMappings": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ConvertDotsInJsonKeysToUnderscores": { + "type": "boolean" + } + }, + "type": "object" + }, + "OrcSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "BloomFilterColumns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BloomFilterFalsePositiveProbability": { + "type": "number" + }, + "Compression": { + "type": "string" + }, + "DictionaryKeyThreshold": { + "type": "number" + }, + "EnablePadding": { + "type": "boolean" + }, + "FormatVersion": { + "type": "string" + }, + "PaddingTolerance": { + "type": "number" + }, + "RowIndexStride": { + "type": "integer" + }, + "StripeSizeBytes": { + "type": "integer" + } + }, + "type": "object" + }, + "OutputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Serializer": { + "$ref": "#/definitions/Serializer" + } + }, + "type": "object" + }, + "ParquetSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "Compression": { + "type": "string" + }, + "EnableDictionaryCompression": { + "type": "boolean" + }, + "MaxPaddingBytes": { + "type": "integer" + }, + "PageSizeBytes": { + "type": "integer" + }, + "WriterVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Processors": { + "items": { + "$ref": "#/definitions/Processor" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Processor": { + "additionalProperties": false, + "properties": { + "Parameters": { + "items": { + "$ref": "#/definitions/ProcessorParameter" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "enum": [ + "RecordDeAggregation", + "Decompression", + "CloudWatchLogProcessing", + "Lambda", + "MetadataExtraction", + "AppendDelimiterToRecord" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ProcessorParameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Lambda::Function" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Lambda::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "RedshiftDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterJDBCURL": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "CopyCommand": { + "$ref": "#/definitions/CopyCommand" + }, + "Password": { + "maxLength": 512, + "minLength": 6, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RedshiftRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "Username": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "S3Configuration", + "ClusterJDBCURL", + "CopyCommand", + "RoleARN" + ], + "type": "object" + }, + "RedshiftRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "RetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "SchemaConfiguration": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Database" + }, + "type": "string" + }, + "Region": { + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "TableName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Table" + }, + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "SecretsManagerConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecretARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::SecretsManager::Secret" + }, + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Serializer": { + "additionalProperties": false, + "properties": { + "OrcSerDe": { + "$ref": "#/definitions/OrcSerDe" + }, + "ParquetSerDe": { + "$ref": "#/definitions/ParquetSerDe" + } + }, + "type": "object" + }, + "SnowflakeDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "AccountUrl": { + "maxLength": 2048, + "minLength": 24, + "pattern": ".+?\\.snowflakecomputing\\.com", + "type": "string" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ContentColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "DataLoadingOption": { + "enum": [ + "JSON_MAPPING", + "VARIANT_CONTENT_MAPPING", + "VARIANT_CONTENT_AND_METADATA_MAPPING" + ], + "type": "string" + }, + "Database": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyPassphrase": { + "maxLength": 255, + "minLength": 7, + "type": "string" + }, + "MetaDataColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "PrivateKey": { + "maxLength": 4096, + "minLength": 256, + "pattern": "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$", + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SnowflakeRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDataOnly", + "AllData" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "Schema": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "SnowflakeRoleConfiguration": { + "$ref": "#/definitions/SnowflakeRoleConfiguration" + }, + "SnowflakeVpcConfiguration": { + "$ref": "#/definitions/SnowflakeVpcConfiguration" + }, + "Table": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "User": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "AccountUrl", + "Database", + "Schema", + "Table", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "SnowflakeRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "SnowflakeRoleConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SnowflakeRole": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "SnowflakeVpcConfiguration": { + "additionalProperties": false, + "properties": { + "PrivateLinkVpceId": { + "maxLength": 255, + "minLength": 47, + "pattern": "([a-zA-Z0-9\\-\\_]+\\.){2,3}vpce\\.[a-zA-Z0-9\\-]*\\.vpce-svc\\-[a-zA-Z0-9\\-]{17}$", + "type": "string" + } + }, + "required": [ + "PrivateLinkVpceId" + ], + "type": "object" + }, + "SplunkBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "SplunkDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/SplunkBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "HECAcknowledgmentTimeoutInSeconds": { + "maximum": 600, + "minimum": 180, + "type": "integer" + }, + "HECEndpoint": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "HECEndpointType": { + "enum": [ + "Raw", + "Event" + ], + "type": "string" + }, + "HECToken": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SplunkRetryOptions" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "HECEndpoint", + "S3Configuration", + "HECEndpointType" + ], + "type": "object" + }, + "SplunkRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "VpcConfiguration": { + "additionalProperties": false, + "properties": { + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/GroupId", + "typeName": "AWS::EC2::SecurityGroup" + }, + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::Subnet" + }, + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "RoleARN", + "SubnetIds", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "firehose:CreateDeliveryStream", + "firehose:DescribeDeliveryStream", + "iam:GetRole", + "iam:PassRole", + "kms:CreateGrant", + "kms:DescribeKey" + ] + }, + "delete": { + "permissions": [ + "firehose:DeleteDeliveryStream", + "firehose:DescribeDeliveryStream", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + }, + "list": { + "permissions": [ + "firehose:ListDeliveryStreams" + ] + }, + "read": { + "permissions": [ + "firehose:DescribeDeliveryStream", + "firehose:ListTagsForDeliveryStream" + ] + }, + "update": { + "permissions": [ + "firehose:UpdateDestination", + "firehose:DescribeDeliveryStream", + "firehose:StartDeliveryStreamEncryption", + "firehose:StopDeliveryStreamEncryption", + "firehose:ListTagsForDeliveryStream", + "firehose:TagDeliveryStream", + "firehose:UntagDeliveryStream", + "kms:CreateGrant", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + } + }, + "primaryIdentifier": [ + "/properties/DeliveryStreamName" + ], + "properties": { + "AmazonOpenSearchServerlessDestinationConfiguration": { + "$ref": "#/definitions/AmazonOpenSearchServerlessDestinationConfiguration" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "$ref": "#/definitions/AmazonopensearchserviceDestinationConfiguration" + }, + "Arn": { + "type": "string" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/DeliveryStreamEncryptionConfigurationInput" + }, + "DeliveryStreamName": { + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9._-]+", + "type": "string" + }, + "DeliveryStreamType": { + "enum": [ + "DirectPut", + "KinesisStreamAsSource", + "MSKAsSource" + ], + "type": "string" + }, + "ElasticsearchDestinationConfiguration": { + "$ref": "#/definitions/ElasticsearchDestinationConfiguration" + }, + "ExtendedS3DestinationConfiguration": { + "$ref": "#/definitions/ExtendedS3DestinationConfiguration" + }, + "HttpEndpointDestinationConfiguration": { + "$ref": "#/definitions/HttpEndpointDestinationConfiguration" + }, + "KinesisStreamSourceConfiguration": { + "$ref": "#/definitions/KinesisStreamSourceConfiguration" + }, + "MSKSourceConfiguration": { + "$ref": "#/definitions/MSKSourceConfiguration" + }, + "RedshiftDestinationConfiguration": { + "$ref": "#/definitions/RedshiftDestinationConfiguration" + }, + "S3DestinationConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SnowflakeDestinationConfiguration": { + "$ref": "#/definitions/SnowflakeDestinationConfiguration" + }, + "SplunkDestinationConfiguration": { + "$ref": "#/definitions/SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "typeName": "AWS::KinesisFirehose::DeliveryStream" +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-lambda-alias.json deleted file mode 100644 index 4a291518b6..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_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/ap_east_1/aws-rds-integration.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-rds-integration.json new file mode 100644 index 0000000000..8bb00c0dfe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-rds-integration.json @@ -0,0 +1,154 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SourceArn", + "/properties/TargetArn", + "/properties/KMSKeyId", + "/properties/AdditionalEncryptionContext" + ], + "definitions": { + "EncryptionContextMap": { + "additionalProperties": false, + "patternProperties": { + "^[\\s\\S]*$": { + "maxLength": 131072, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "handlers": { + "create": { + "permissions": [ + "rds:CreateIntegration", + "rds:DescribeIntegrations", + "rds:AddTagsToResource", + "kms:CreateGrant", + "kms:DescribeKey", + "redshift:CreateInboundIntegration" + ] + }, + "delete": { + "permissions": [ + "rds:DeleteIntegration", + "rds:DescribeIntegrations" + ] + }, + "list": { + "permissions": [ + "rds:DescribeIntegrations" + ] + }, + "read": { + "permissions": [ + "rds:DescribeIntegrations" + ] + }, + "update": { + "permissions": [ + "rds:DescribeIntegrations", + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource", + "rds:ModifyIntegration" + ] + } + }, + "primaryIdentifier": [ + "/properties/IntegrationArn" + ], + "properties": { + "AdditionalEncryptionContext": { + "$ref": "#/definitions/EncryptionContextMap" + }, + "CreateTime": { + "type": "string" + }, + "DataFilter": { + "maxLength": 25600, + "minLength": 1, + "pattern": "[a-zA-Z0-9_ \"\\\\\\-$,*.:?+\\/]*", + "type": "string" + }, + "Description": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + }, + "IntegrationArn": { + "type": "string" + }, + "IntegrationName": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "KMSKeyId": { + "type": "string" + }, + "SourceArn": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "TargetArn": { + "type": "string" + } + }, + "propertyTransform": { + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/SourceArn": "$lowercase(SourceArn)" + }, + "readOnlyProperties": [ + "/properties/IntegrationArn", + "/properties/CreateTime" + ], + "required": [ + "SourceArn", + "TargetArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-secretsmanager-resourcepolicy.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-secretsmanager-resourcepolicy.json new file mode 100644 index 0000000000..92fc7be26c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/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_east_1/aws-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-stepfunctions-activity.json deleted file mode 100644 index 7aaf191ed1..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-stepfunctions-activity.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateActivity", - "states:TagResource" - ] - }, - "delete": { - "permissions": [ - "states:DescribeActivity", - "states:DeleteActivity" - ] - }, - "list": { - "permissions": [ - "states:ListActivities" - ] - }, - "read": { - "permissions": [ - "states:DescribeActivity", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:ListTagsForResource", - "states:TagResource", - "states:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::Activity" -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-stepfunctions-statemachine.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-stepfunctions-statemachine.json deleted file mode 100644 index c8a1b0f42e..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-stepfunctions-statemachine.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/StateMachineName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StateMachineName", - "/properties/StateMachineType" - ], - "definitions": { - "CloudWatchLogsLogGroup": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Definition": { - "minProperties": 1, - "type": "object" - }, - "DefinitionSubstitutions": { - "additionalProperties": false, - "minProperties": 1, - "patternProperties": { - ".*": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer" - }, - { - "type": "boolean" - } - ] - } - }, - "type": "object" - }, - "LogDestination": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsLogGroup": { - "$ref": "#/definitions/CloudWatchLogsLogGroup" - } - }, - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "Destinations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LogDestination" - }, - "minItems": 1, - "type": "array" - }, - "IncludeExecutionData": { - "type": "boolean" - }, - "Level": { - "enum": [ - "ALL", - "ERROR", - "FATAL", - "OFF" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TracingConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateStateMachine", - "states:DescribeStateMachine", - "states:TagResource", - "iam:PassRole", - "s3:GetObject" - ] - }, - "delete": { - "permissions": [ - "states:DeleteStateMachine", - "states:DescribeStateMachine" - ] - }, - "list": { - "permissions": [ - "states:ListStateMachines" - ] - }, - "read": { - "permissions": [ - "states:DescribeStateMachine", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:UpdateStateMachine", - "states:TagResource", - "states:UntagResource", - "states:ListTagsForResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Definition": { - "$ref": "#/definitions/Definition" - }, - "DefinitionS3Location": { - "$ref": "#/definitions/S3Location" - }, - "DefinitionString": { - "maxLength": 1048576, - "minLength": 1, - "type": "string" - }, - "DefinitionSubstitutions": { - "$ref": "#/definitions/DefinitionSubstitutions" - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "RoleArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineName": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "StateMachineRevisionId": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineType": { - "enum": [ - "STANDARD", - "EXPRESS" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - }, - "TracingConfiguration": { - "$ref": "#/definitions/TracingConfiguration" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/StateMachineRevisionId" - ], - "required": [ - "RoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::StateMachine", - "writeOnlyProperties": [ - "/properties/Definition", - "/properties/DefinitionS3Location", - "/properties/DefinitionSubstitutions" - ] -} 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 7996392da5..227ab6f7de 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py @@ -9,6 +9,7 @@ "AWS::APS::RuleGroupsNamespace", "AWS::APS::Scraper", "AWS::APS::Workspace", + "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus", "AWS::ARCZonalShift::ZonalAutoshiftConfiguration", "AWS::AccessAnalyzer::Analyzer", "AWS::AmazonMQ::Broker", @@ -133,9 +134,14 @@ "AWS::Bedrock::Agent", "AWS::Bedrock::AgentAlias", "AWS::Bedrock::DataSource", + "AWS::Bedrock::Flow", + "AWS::Bedrock::FlowAlias", + "AWS::Bedrock::FlowVersion", "AWS::Bedrock::Guardrail", "AWS::Bedrock::GuardrailVersion", "AWS::Bedrock::KnowledgeBase", + "AWS::Bedrock::Prompt", + "AWS::Bedrock::PromptVersion", "AWS::Budgets::Budget", "AWS::Budgets::BudgetsAction", "AWS::CDK::Metadata", @@ -1323,6 +1329,7 @@ "aws-aps-rulegroupsnamespace.json", "aws-aps-scraper.json", "aws-aps-workspace.json", + "aws-arczonalshift-autoshiftobservernotificationstatus.json", "aws-arczonalshift-zonalautoshiftconfiguration.json", "aws-athena-capacityreservation.json", "aws-athena-datacatalog.json", @@ -1352,9 +1359,14 @@ "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", @@ -1372,7 +1384,6 @@ "aws-cleanrooms-configuredtableassociation.json", "aws-cleanrooms-membership.json", "aws-cleanrooms-privacybudgettemplate.json", - "aws-cleanroomsml-trainingdataset.json", "aws-cloud9-environmentec2.json", "aws-cloudformation-customresource.json", "aws-cloudformation-hookdefaultversion.json", @@ -1550,6 +1561,7 @@ "aws-dms-eventsubscription.json", "aws-dms-instanceprofile.json", "aws-dms-migrationproject.json", + "aws-dms-replicationconfig.json", "aws-dms-replicationinstance.json", "aws-dms-replicationsubnetgroup.json", "aws-dms-replicationtask.json", @@ -1828,7 +1840,6 @@ "aws-inspector-assessmenttarget.json", "aws-inspector-assessmenttemplate.json", "aws-inspector-resourcegroup.json", - "aws-inspectorv2-cisscanconfiguration.json", "aws-inspectorv2-filter.json", "aws-internetmonitor-monitor.json", "aws-iot-accountauditconfiguration.json", @@ -2081,6 +2092,7 @@ "aws-opsworks-volume.json", "aws-opsworkscm-server.json", "aws-organizations-account.json", + "aws-organizations-organization.json", "aws-organizations-organizationalunit.json", "aws-organizations-policy.json", "aws-organizations-resourcepolicy.json", @@ -2212,13 +2224,11 @@ "aws-s3outposts-bucket.json", "aws-s3outposts-bucketpolicy.json", "aws-s3outposts-endpoint.json", - "aws-sagemaker-app.json", "aws-sagemaker-appimageconfig.json", "aws-sagemaker-coderepository.json", "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", @@ -2239,8 +2249,6 @@ "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-sagemaker-pipeline.json", "aws-sagemaker-project.json", - "aws-sagemaker-space.json", - "aws-sagemaker-userprofile.json", "aws-sagemaker-workteam.json", "aws-scheduler-schedule.json", "aws-scheduler-schedulegroup.json", @@ -2308,6 +2316,7 @@ "aws-shield-drtaccess.json", "aws-shield-proactiveengagement.json", "aws-shield-protection.json", + "aws-shield-protectiongroup.json", "aws-signer-profilepermission.json", "aws-signer-signingprofile.json", "aws-sns-subscription.json", @@ -2408,8 +2417,10 @@ "aws-workspacesweb-identityprovider.json", "aws-workspacesweb-ipaccesssettings.json", "aws-workspacesweb-networksettings.json", + "aws-workspacesweb-portal.json", "aws-workspacesweb-truststore.json", "aws-workspacesweb-useraccessloggingsettings.json", + "aws-workspacesweb-usersettings.json", "aws-xray-group.json", "aws-xray-resourcepolicy.json", "aws-xray-samplingrule.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanroomsml-trainingdataset.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanroomsml-trainingdataset.json new file mode 100644 index 0000000000..bdb81299cb --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanroomsml-trainingdataset.json @@ -0,0 +1,249 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Description", + "/properties/Name", + "/properties/RoleArn", + "/properties/TrainingData" + ], + "definitions": { + "ColumnSchema": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "ColumnTypes": { + "items": { + "$ref": "#/definitions/ColumnType" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ColumnName", + "ColumnTypes" + ], + "type": "object" + }, + "ColumnType": { + "enum": [ + "USER_ID", + "ITEM_ID", + "TIMESTAMP", + "CATEGORICAL_FEATURE", + "NUMERICAL_FEATURE" + ], + "type": "string" + }, + "DataSource": { + "additionalProperties": false, + "properties": { + "GlueDataSource": { + "$ref": "#/definitions/GlueDataSource" + } + }, + "required": [ + "GlueDataSource" + ], + "type": "object" + }, + "Dataset": { + "additionalProperties": false, + "properties": { + "InputConfig": { + "$ref": "#/definitions/DatasetInputConfig" + }, + "Type": { + "$ref": "#/definitions/DatasetType" + } + }, + "required": [ + "InputConfig", + "Type" + ], + "type": "object" + }, + "DatasetInputConfig": { + "additionalProperties": false, + "properties": { + "DataSource": { + "$ref": "#/definitions/DataSource" + }, + "Schema": { + "items": { + "$ref": "#/definitions/ColumnSchema" + }, + "maxItems": 100, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "DataSource", + "Schema" + ], + "type": "object" + }, + "DatasetType": { + "enum": [ + "INTERACTIONS" + ], + "type": "string" + }, + "GlueDataSource": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "DatabaseName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_]+-)*([a-zA-Z0-9_]+))?$", + "type": "string" + }, + "TableName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + } + }, + "required": [ + "DatabaseName", + "TableName" + ], + "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" + }, + "TrainingDatasetStatus": { + "enum": [ + "ACTIVE" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms-ml:CreateTrainingDataset", + "cleanrooms-ml:GetTrainingDataset", + "cleanrooms-ml:TagResource", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "cleanrooms-ml:DeleteTrainingDataset" + ] + }, + "list": { + "permissions": [ + "cleanrooms-ml:ListTrainingDatasets" + ] + }, + "read": { + "permissions": [ + "cleanrooms-ml:GetTrainingDataset" + ] + }, + "update": { + "permissions": [ + "cleanrooms-ml:TagResource", + "cleanrooms-ml:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/TrainingDatasetArn" + ], + "properties": { + "Description": { + "maxLength": 255, + "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", + "type": "string" + }, + "Name": { + "maxLength": 63, + "minLength": 1, + "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[-a-z]*:iam::[0-9]{12}:role/.+$", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/TrainingDatasetStatus" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TrainingData": { + "items": { + "$ref": "#/definitions/Dataset" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "TrainingDatasetArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:training-dataset/[-a-zA-Z0-9_/.]+$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Status", + "/properties/TrainingDatasetArn" + ], + "required": [ + "Name", + "RoleArn", + "TrainingData" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRoomsML::TrainingDataset" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-dms-replicationconfig.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-dms-replicationconfig.json deleted file mode 100644 index 83b9074702..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-dms-replicationconfig.json +++ /dev/null @@ -1,204 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicationConfigIdentifier" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ResourceIdentifier" - ], - "definitions": { - "ComputeConfig": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "type": "string" - }, - "DnsNameServers": { - "type": "string" - }, - "KmsKeyId": { - "type": "string" - }, - "MaxCapacityUnits": { - "type": "integer" - }, - "MinCapacityUnits": { - "type": "integer" - }, - "MultiAZ": { - "type": "boolean" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ReplicationSubnetGroupId": { - "type": "string" - }, - "VpcSecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "MaxCapacityUnits" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "dms:CreateReplicationConfig", - "dms:AddTagsToResource", - "dms:ListTagsForResource", - "iam:CreateServiceLinkedRole", - "iam:AttachRolePolicy", - "iam:PutRolePolicy", - "iam:UpdateRoleDescription" - ] - }, - "delete": { - "permissions": [ - "dms:DescribeReplicationConfigs", - "dms:DeleteReplicationConfig", - "dms:ListTagsForResource", - "iam:DeleteServiceLinkedRole", - "iam:GetServiceLinkedRoleDeletionStatus" - ] - }, - "list": { - "permissions": [ - "dms:DescribeReplicationConfigs", - "dms:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "dms:DescribeReplicationConfigs", - "dms:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "dms:ModifyReplicationConfig", - "dms:AddTagsToResource", - "dms:RemoveTagsFromResource", - "dms:ListTagsForResource", - "iam:CreateServiceLinkedRole", - "iam:AttachRolePolicy", - "iam:PutRolePolicy", - "iam:UpdateRoleDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicationConfigArn" - ], - "properties": { - "ComputeConfig": { - "$ref": "#/definitions/ComputeConfig" - }, - "ReplicationConfigArn": { - "type": "string" - }, - "ReplicationConfigIdentifier": { - "type": "string" - }, - "ReplicationSettings": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "ReplicationType": { - "enum": [ - "full-load", - "full-load-and-cdc", - "cdc" - ], - "type": "string" - }, - "ResourceIdentifier": { - "type": "string" - }, - "SourceEndpointArn": { - "type": "string" - }, - "SupplementalSettings": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TableMappings": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 1, - "type": "array" - }, - "TargetEndpointArn": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/ReplicationConfigArn" - ], - "required": [ - "ReplicationConfigIdentifier", - "SourceEndpointArn", - "TargetEndpointArn", - "ReplicationType", - "ComputeConfig", - "TableMappings" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-dms", - "tagging": { - "cloudFormationSystemTags": false, - "permissions": [ - "dms:AddTagsToResource", - "dms:ListTagsForResource", - "dms:RemoveTagsFromResource" - ], - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::DMS::ReplicationConfig" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-inspectorv2-cisscanconfiguration.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-inspectorv2-cisscanconfiguration.json new file mode 100644 index 0000000000..207b596d71 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-inspectorv2-cisscanconfiguration.json @@ -0,0 +1,245 @@ +{ + "additionalProperties": false, + "definitions": { + "CisSecurityLevel": { + "enum": [ + "LEVEL_1", + "LEVEL_2" + ], + "type": "string" + }, + "CisTagMap": { + "additionalProperties": false, + "patternProperties": { + "^.{2,127}$": { + "pattern": "^.{1,255}$", + "type": "string" + } + }, + "type": "object" + }, + "CisTargets": { + "additionalProperties": false, + "properties": { + "AccountIds": { + "items": { + "pattern": "^\\d{12}|ALL_MEMBERS|SELF$", + "type": "string" + }, + "maxItems": 10000, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "TargetResourceTags": { + "$ref": "#/definitions/TargetResourceTags" + } + }, + "required": [ + "AccountIds" + ] + }, + "DailySchedule": { + "additionalProperties": false, + "properties": { + "StartTime": { + "$ref": "#/definitions/Time" + } + }, + "required": [ + "StartTime" + ], + "type": "object" + }, + "Day": { + "enum": [ + "MON", + "TUE", + "WED", + "THU", + "FRI", + "SAT", + "SUN" + ], + "type": "string" + }, + "DaysList": { + "items": { + "$ref": "#/definitions/Day" + }, + "maxItems": 7, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "MonthlySchedule": { + "additionalProperties": false, + "properties": { + "Day": { + "$ref": "#/definitions/Day" + }, + "StartTime": { + "$ref": "#/definitions/Time" + } + }, + "required": [ + "StartTime", + "Day" + ], + "type": "object" + }, + "OneTimeSchedule": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Schedule": { + "properties": { + "Daily": { + "$ref": "#/definitions/DailySchedule" + }, + "Monthly": { + "$ref": "#/definitions/MonthlySchedule" + }, + "OneTime": { + "$ref": "#/definitions/OneTimeSchedule" + }, + "Weekly": { + "$ref": "#/definitions/WeeklySchedule" + } + } + }, + "TagValueList": { + "items": { + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "TargetResourceTags": { + "additionalProperties": false, + "maxProperties": 5, + "patternProperties": { + "^.+$": { + "$ref": "#/definitions/TagValueList" + } + } + }, + "Time": { + "additionalProperties": false, + "properties": { + "TimeOfDay": { + "pattern": "^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$", + "type": "string" + }, + "TimeZone": { + "type": "string" + } + }, + "required": [ + "TimeOfDay", + "TimeZone" + ], + "type": "object" + }, + "WeeklySchedule": { + "additionalProperties": false, + "properties": { + "Days": { + "$ref": "#/definitions/DaysList" + }, + "StartTime": { + "$ref": "#/definitions/Time" + } + }, + "required": [ + "StartTime", + "Days" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "inspector2:CreateCisScanConfiguration", + "inspector2:ListCisScanConfigurations", + "inspector2:TagResource" + ] + }, + "delete": { + "permissions": [ + "inspector2:ListCisScanConfigurations", + "inspector2:DeleteCisScanConfiguration", + "inspector2:UntagResource" + ] + }, + "list": { + "permissions": [ + "inspector2:ListCisScanConfigurations", + "inspector2:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "inspector2:ListCisScanConfigurations", + "inspector2:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "inspector2:ListCisScanConfigurations", + "inspector2:UpdateCisScanConfiguration", + "inspector2:TagResource", + "inspector2:UntagResource", + "inspector2:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "type": "string" + }, + "ScanName": { + "minLength": 1, + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule" + }, + "SecurityLevel": { + "$ref": "#/definitions/CisSecurityLevel" + }, + "Tags": { + "$ref": "#/definitions/CisTagMap" + }, + "Targets": { + "$ref": "#/definitions/CisTargets" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "ScanName", + "SecurityLevel", + "Schedule", + "Targets" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-inspector.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::InspectorV2::CisScanConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-organizations-organization.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-organizations-organization.json deleted file mode 100644 index 844033a13a..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-organizations-organization.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "additionalProperties": false, - "handlers": { - "create": { - "permissions": [ - "organizations:CreateOrganization", - "organizations:DescribeOrganization", - "iam:CreateServiceLinkedRole", - "organizations:ListRoots" - ] - }, - "delete": { - "permissions": [ - "organizations:DeleteOrganization", - "organizations:DescribeOrganization" - ] - }, - "list": { - "permissions": [ - "organizations:DescribeOrganization" - ] - }, - "read": { - "permissions": [ - "organizations:DescribeOrganization", - "organizations:ListRoots" - ] - }, - "update": { - "permissions": [ - "organizations:DescribeOrganization" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "pattern": "^arn:aws.*:organizations::\\d{12}:organization\\/o-[a-z0-9]{10,32}", - "type": "string" - }, - "FeatureSet": { - "default": "ALL", - "enum": [ - "ALL", - "CONSOLIDATED_BILLING" - ], - "type": "string" - }, - "Id": { - "pattern": "^o-[a-z0-9]{10,32}$", - "type": "string" - }, - "ManagementAccountArn": { - "pattern": "^arn:aws.*:organizations::\\d{12}:account\\/o-[a-z0-9]{10,32}\\/\\d{12}", - "type": "string" - }, - "ManagementAccountEmail": { - "maxLength": 64, - "minLength": 6, - "pattern": "[^\\s@]+@[^\\s@]+\\.[^\\s@]+", - "type": "string" - }, - "ManagementAccountId": { - "pattern": "^\\d{12}$", - "type": "string" - }, - "RootId": { - "maxLength": 64, - "pattern": "^r-[0-9a-z]{4,32}$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn", - "/properties/ManagementAccountArn", - "/properties/ManagementAccountId", - "/properties/ManagementAccountEmail", - "/properties/RootId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-organizations.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::Organizations::Organization" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-sagemaker-app.json new file mode 100644 index 0000000000..d565ffb835 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-sagemaker-app.json @@ -0,0 +1,210 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/Tags", + "/properties/ResourceSpec" + ], + "definitions": { + "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" + }, + "SageMakerImageArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:DescribeApp" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DescribeApp" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListApps" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeApp", + "sagemaker:DescribeApp" + ] + } + }, + "primaryIdentifier": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName" + ], + "properties": { + "AppArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app/.*", + "type": "string" + }, + "AppName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "RStudioServerPro", + "RSessionGateway", + "Canvas" + ], + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "ResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/AppArn" + ], + "required": [ + "AppName", + "AppType", + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::App", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} 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..5cd4ea45fa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-sagemaker-domain.json @@ -0,0 +1,831 @@ +{ + "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" + } + }, + "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" + } + }, + "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-space.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-sagemaker-space.json new file mode 100644 index 0000000000..1ad92e7aa4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-sagemaker-space.json @@ -0,0 +1,436 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/SpaceName", + "/properties/SpaceSharingSettings", + "/properties/OwnershipSettings" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "TensorBoard", + "RStudioServerPro", + "RSessionGateway", + "JupyterLab", + "CodeEditor" + ], + "type": "string" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystem": { + "additionalProperties": false, + "properties": { + "EFSFileSystem": { + "$ref": "#/definitions/EFSFileSystem" + } + }, + "type": "object" + }, + "CustomFileSystems": { + "items": { + "$ref": "#/definitions/CustomFileSystem" + }, + "maxItems": 1, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "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" + }, + "EFSFileSystem": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EbsStorageSettings": { + "additionalProperties": false, + "properties": { + "EbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "EbsVolumeSizeInGb" + ], + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "OwnershipSettings": { + "additionalProperties": false, + "properties": { + "OwnerUserProfileName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "required": [ + "OwnerUserProfileName" + ], + "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" + }, + "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" + }, + "SpaceCodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "SpaceJupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "SpaceSettings": { + "additionalProperties": false, + "properties": { + "AppType": { + "$ref": "#/definitions/AppType" + }, + "CodeEditorAppSettings": { + "$ref": "#/definitions/SpaceCodeEditorAppSettings" + }, + "CustomFileSystems": { + "$ref": "#/definitions/CustomFileSystems" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/SpaceJupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/SpaceStorageSettings" + } + }, + "type": "object" + }, + "SpaceSharingSettings": { + "additionalProperties": false, + "properties": { + "SharingType": { + "enum": [ + "Private", + "Shared" + ], + "type": "string" + } + }, + "required": [ + "SharingType" + ], + "type": "object" + }, + "SpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "EbsStorageSettings": { + "$ref": "#/definitions/EbsStorageSettings" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateSpace", + "sagemaker:DescribeSpace" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteSpace", + "sagemaker:DescribeSpace" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListSpaces" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeSpace" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateSpace", + "sagemaker:DescribeSpace" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId", + "/properties/SpaceName" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "OwnershipSettings": { + "$ref": "#/definitions/OwnershipSettings" + }, + "SpaceArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:space/.*", + "type": "string" + }, + "SpaceDisplayName": { + "maxLength": 64, + "pattern": "^(?!\\s*$).+", + "type": "string" + }, + "SpaceName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SpaceSettings": { + "$ref": "#/definitions/SpaceSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + }, + "SpaceSharingSettings": { + "$ref": "#/definitions/SpaceSharingSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/SpaceArn", + "/properties/Url" + ], + "required": [ + "DomainId", + "SpaceName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SageMaker::Space", + "writeOnlyProperties": [ + "/properties/SpaceSettings", + "/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..c2c0daf9fe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-sagemaker-userprofile.json @@ -0,0 +1,592 @@ +{ + "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" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "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" + }, + "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-shield-protectiongroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-shield-protectiongroup.json deleted file mode 100644 index 5feda49337..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-shield-protectiongroup.json +++ /dev/null @@ -1,141 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ProtectionGroupId" - ], - "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": [ - "shield:CreateProtectionGroup", - "shield:TagResource" - ] - }, - "delete": { - "permissions": [ - "shield:DeleteProtectionGroup", - "shield:UntagResource" - ] - }, - "list": { - "permissions": [ - "shield:ListProtectionGroups" - ] - }, - "read": { - "permissions": [ - "shield:DescribeProtectionGroup", - "shield:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "shield:UpdateProtectionGroup", - "shield:ListTagsForResource", - "shield:TagResource", - "shield:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProtectionGroupArn" - ], - "properties": { - "Aggregation": { - "enum": [ - "SUM", - "MEAN", - "MAX" - ], - "type": "string" - }, - "Members": { - "insertionOrder": false, - "items": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - "Pattern": { - "enum": [ - "ALL", - "ARBITRARY", - "BY_RESOURCE_TYPE" - ], - "type": "string" - }, - "ProtectionGroupArn": { - "type": "string" - }, - "ProtectionGroupId": { - "maxLength": 36, - "minLength": 1, - "pattern": "[a-zA-Z0-9\\-]*", - "type": "string" - }, - "ResourceType": { - "enum": [ - "CLOUDFRONT_DISTRIBUTION", - "ROUTE_53_HOSTED_ZONE", - "ELASTIC_IP_ALLOCATION", - "CLASSIC_LOAD_BALANCER", - "APPLICATION_LOAD_BALANCER", - "GLOBAL_ACCELERATOR" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/ProtectionGroupArn" - ], - "replacementStrategy": "delete_then_create", - "required": [ - "Aggregation", - "Pattern", - "ProtectionGroupId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-shield.git", - "tagging": { - "cloudFormationSystemTags": false, - "permissions": [ - "shield:ListTagsForResource", - "shield:UntagResource", - "shield:TagResource" - ], - "tagProperty": "/properties/Tags", - "taggable": true - }, - "typeName": "AWS::Shield::ProtectionGroup" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-workspacesweb-portal.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-workspacesweb-portal.json deleted file mode 100644 index 9588a3f3dc..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-workspacesweb-portal.json +++ /dev/null @@ -1,311 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AdditionalEncryptionContext", - "/properties/CustomerManagedKey" - ], - "definitions": { - "AuthenticationType": { - "enum": [ - "Standard", - "IAM_Identity_Center" - ], - "type": "string" - }, - "BrowserType": { - "enum": [ - "Chrome" - ], - "type": "string" - }, - "EncryptionContextMap": { - "additionalProperties": false, - "patternProperties": { - "^[\\s\\S]*$": { - "maxLength": 131072, - "minLength": 0, - "pattern": "^[\\s\\S]*$", - "type": "string" - } - }, - "type": "object" - }, - "InstanceType": { - "enum": [ - "standard.regular", - "standard.large", - "standard.xlarge" - ], - "type": "string" - }, - "PortalStatus": { - "enum": [ - "Incomplete", - "Pending", - "Active" - ], - "type": "string" - }, - "RendererType": { - "enum": [ - "AppStream" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "workspaces-web:CreatePortal", - "workspaces-web:GetPortal", - "workspaces-web:GetPortalServiceProviderMetadata", - "workspaces-web:AssociateBrowserSettings", - "workspaces-web:AssociateIpAccessSettings", - "workspaces-web:AssociateNetworkSettings", - "workspaces-web:AssociateTrustStore", - "workspaces-web:AssociateUserAccessLoggingSettings", - "workspaces-web:AssociateUserSettings", - "workspaces-web:ListTagsForResource", - "workspaces-web:TagResource", - "kms:CreateGrant", - "kms:GenerateDataKey", - "kms:Decrypt", - "kms:DescribeKey", - "ec2:CreateNetworkInterface", - "ec2:CreateNetworkInterfacePermission", - "ec2:DeleteNetworkInterface", - "ec2:DeleteNetworkInterfacePermission", - "ec2:ModifyNetworkInterfaceAttribute", - "kinesis:PutRecord", - "kinesis:PutRecords", - "kinesis:DescribeStreamSummary", - "sso:CreateManagedApplicationInstance", - "sso:DescribeRegisteredRegions" - ] - }, - "delete": { - "permissions": [ - "workspaces-web:GetPortal", - "workspaces-web:DeletePortal", - "workspaces-web:DisassociateBrowserSettings", - "workspaces-web:DisassociateIpAccessSettings", - "workspaces-web:DisassociateNetworkSettings", - "workspaces-web:DisassociateTrustStore", - "workspaces-web:DisassociateUserAccessLoggingSettings", - "workspaces-web:DisassociateUserSettings", - "kms:Decrypt", - "kms:DescribeKey", - "sso:DeleteManagedApplicationInstance" - ] - }, - "list": { - "permissions": [ - "workspaces-web:ListPortals", - "kms:Decrypt", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "workspaces-web:GetPortal", - "workspaces-web:GetPortalServiceProviderMetadata", - "workspaces-web:ListTagsForResource", - "kms:Decrypt", - "kms:DescribeKey" - ] - }, - "update": { - "permissions": [ - "workspaces-web:GetPortal", - "workspaces-web:GetPortalServiceProviderMetadata", - "workspaces-web:UpdatePortal", - "workspaces-web:AssociateBrowserSettings", - "workspaces-web:AssociateIpAccessSettings", - "workspaces-web:AssociateNetworkSettings", - "workspaces-web:AssociateTrustStore", - "workspaces-web:AssociateUserAccessLoggingSettings", - "workspaces-web:AssociateUserSettings", - "workspaces-web:DisassociateBrowserSettings", - "workspaces-web:DisassociateIpAccessSettings", - "workspaces-web:DisassociateNetworkSettings", - "workspaces-web:DisassociateTrustStore", - "workspaces-web:DisassociateUserAccessLoggingSettings", - "workspaces-web:DisassociateUserSettings", - "workspaces-web:ListTagsForResource", - "workspaces-web:TagResource", - "workspaces-web:UntagResource", - "kms:CreateGrant", - "kms:Encrypt", - "kms:GenerateDataKey", - "kms:Decrypt", - "kms:DescribeKey", - "ec2:CreateNetworkInterface", - "ec2:CreateNetworkInterfacePermission", - "ec2:DeleteNetworkInterface", - "ec2:DeleteNetworkInterfacePermission", - "ec2:ModifyNetworkInterfaceAttribute", - "kinesis:PutRecord", - "kinesis:PutRecords", - "kinesis:DescribeStreamSummary", - "sso:CreateManagedApplicationInstance", - "sso:DeleteManagedApplicationInstance", - "sso:DescribeRegisteredRegions", - "sso:GetApplicationInstance", - "sso:ListApplicationInstances" - ] - } - }, - "primaryIdentifier": [ - "/properties/PortalArn" - ], - "properties": { - "AdditionalEncryptionContext": { - "$ref": "#/definitions/EncryptionContextMap" - }, - "AuthenticationType": { - "$ref": "#/definitions/AuthenticationType" - }, - "BrowserSettingsArn": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", - "type": "string" - }, - "BrowserType": { - "$ref": "#/definitions/BrowserType" - }, - "CreationDate": { - "format": "date-time", - "type": "string" - }, - "CustomerManagedKey": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:[\\w+=\\/,.@-]+:kms:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:key\\/[a-zA-Z0-9-]+$", - "type": "string" - }, - "DisplayName": { - "maxLength": 64, - "minLength": 1, - "pattern": "^.+$", - "type": "string" - }, - "InstanceType": { - "$ref": "#/definitions/InstanceType" - }, - "IpAccessSettingsArn": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", - "type": "string" - }, - "MaxConcurrentSessions": { - "maximum": 5000, - "minimum": 1, - "type": "number" - }, - "NetworkSettingsArn": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", - "type": "string" - }, - "PortalArn": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", - "type": "string" - }, - "PortalEndpoint": { - "maxLength": 253, - "minLength": 1, - "pattern": "^[a-zA-Z0-9]?((?!-)([A-Za-z0-9-]*[A-Za-z0-9])\\.)+[a-zA-Z0-9]+$", - "type": "string" - }, - "PortalStatus": { - "$ref": "#/definitions/PortalStatus" - }, - "RendererType": { - "$ref": "#/definitions/RendererType" - }, - "ServiceProviderSamlMetadata": { - "maxLength": 204800, - "minLength": 0, - "pattern": "^.*$", - "type": "string" - }, - "StatusReason": { - "maxLength": 1024, - "minLength": 1, - "pattern": ".*", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array" - }, - "TrustStoreArn": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", - "type": "string" - }, - "UserAccessLoggingSettingsArn": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", - "type": "string" - }, - "UserSettingsArn": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/BrowserType", - "/properties/CreationDate", - "/properties/PortalArn", - "/properties/PortalEndpoint", - "/properties/PortalStatus", - "/properties/RendererType", - "/properties/ServiceProviderSamlMetadata", - "/properties/StatusReason" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::WorkSpacesWeb::Portal" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-workspacesweb-usersettings.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-workspacesweb-usersettings.json deleted file mode 100644 index 42252e5db8..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-workspacesweb-usersettings.json +++ /dev/null @@ -1,250 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AdditionalEncryptionContext", - "/properties/CustomerManagedKey" - ], - "definitions": { - "CookieSpecification": { - "additionalProperties": false, - "properties": { - "Domain": { - "maxLength": 253, - "minLength": 0, - "pattern": "^(\\.?)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$", - "type": "string" - }, - "Name": { - "maxLength": 4096, - "minLength": 0, - "type": "string" - }, - "Path": { - "maxLength": 2000, - "minLength": 0, - "pattern": "^/(\\S)*$", - "type": "string" - } - }, - "required": [ - "Domain" - ], - "type": "object" - }, - "CookieSynchronizationConfiguration": { - "additionalProperties": false, - "properties": { - "Allowlist": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CookieSpecification" - }, - "maxItems": 10, - "minItems": 0, - "type": "array" - }, - "Blocklist": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CookieSpecification" - }, - "maxItems": 10, - "minItems": 0, - "type": "array" - } - }, - "required": [ - "Allowlist" - ], - "type": "object" - }, - "EnabledType": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - }, - "EncryptionContextMap": { - "additionalProperties": false, - "patternProperties": { - "^[\\s\\S]*$": { - "maxLength": 131072, - "minLength": 0, - "pattern": "^[\\s\\S]*$", - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "workspaces-web:CreateUserSettings", - "workspaces-web:GetUserSettings", - "workspaces-web:ListTagsForResource", - "workspaces-web:TagResource", - "kms:CreateGrant", - "kms:DescribeKey", - "kms:GenerateDataKey", - "kms:Decrypt" - ] - }, - "delete": { - "permissions": [ - "workspaces-web:GetUserSettings", - "workspaces-web:DeleteUserSettings", - "kms:CreateGrant", - "kms:DescribeKey", - "kms:GenerateDataKey", - "kms:Decrypt" - ] - }, - "list": { - "permissions": [ - "workspaces-web:ListUserSettings", - "kms:CreateGrant", - "kms:DescribeKey", - "kms:GenerateDataKey", - "kms:Decrypt" - ] - }, - "read": { - "permissions": [ - "workspaces-web:GetUserSettings", - "workspaces-web:ListTagsForResource", - "kms:CreateGrant", - "kms:DescribeKey", - "kms:GenerateDataKey", - "kms:Decrypt" - ] - }, - "update": { - "permissions": [ - "workspaces-web:UpdateUserSettings", - "workspaces-web:TagResource", - "workspaces-web:UntagResource", - "workspaces-web:GetUserSettings", - "workspaces-web:ListTagsForResource", - "kms:CreateGrant", - "kms:DescribeKey", - "kms:GenerateDataKey", - "kms:Decrypt" - ] - } - }, - "primaryIdentifier": [ - "/properties/UserSettingsArn" - ], - "properties": { - "AdditionalEncryptionContext": { - "$ref": "#/definitions/EncryptionContextMap" - }, - "AssociatedPortalArns": { - "insertionOrder": false, - "items": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", - "type": "string" - }, - "type": "array" - }, - "CookieSynchronizationConfiguration": { - "$ref": "#/definitions/CookieSynchronizationConfiguration" - }, - "CopyAllowed": { - "$ref": "#/definitions/EnabledType" - }, - "CustomerManagedKey": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:[\\w+=\\/,.@-]+:kms:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:key\\/[a-zA-Z0-9-]+$", - "type": "string" - }, - "DeepLinkAllowed": { - "$ref": "#/definitions/EnabledType" - }, - "DisconnectTimeoutInMinutes": { - "default": null, - "maximum": 600, - "minimum": 1, - "type": "number" - }, - "DownloadAllowed": { - "$ref": "#/definitions/EnabledType" - }, - "IdleDisconnectTimeoutInMinutes": { - "default": null, - "maximum": 60, - "minimum": 0, - "type": "number" - }, - "PasteAllowed": { - "$ref": "#/definitions/EnabledType" - }, - "PrintAllowed": { - "$ref": "#/definitions/EnabledType" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array" - }, - "UploadAllowed": { - "$ref": "#/definitions/EnabledType" - }, - "UserSettingsArn": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/AssociatedPortalArns", - "/properties/UserSettingsArn" - ], - "required": [ - "CopyAllowed", - "DownloadAllowed", - "PasteAllowed", - "PrintAllowed", - "UploadAllowed" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::WorkSpacesWeb::UserSettings" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py b/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py index 795fafafcc..ee86e7d723 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py @@ -1212,7 +1212,6 @@ "aws-aps-rulegroupsnamespace.json", "aws-aps-scraper.json", "aws-aps-workspace.json", - "aws-arczonalshift-zonalautoshiftconfiguration.json", "aws-athena-datacatalog.json", "aws-athena-namedquery.json", "aws-athena-preparedstatement.json", @@ -1233,7 +1232,6 @@ "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-budgets-budget.json", @@ -1253,7 +1251,6 @@ "aws-cleanrooms-configuredtableassociation.json", "aws-cleanrooms-membership.json", "aws-cleanrooms-privacybudgettemplate.json", - "aws-cleanroomsml-trainingdataset.json", "aws-cloud9-environmentec2.json", "aws-cloudformation-customresource.json", "aws-cloudformation-hookdefaultversion.json", @@ -1582,7 +1579,6 @@ "aws-fis-experimenttemplate.json", "aws-fis-targetaccountconfiguration.json", "aws-fms-notificationchannel.json", - "aws-fms-policy.json", "aws-fms-resourceset.json", "aws-forecast-dataset.json", "aws-forecast-datasetgroup.json", @@ -1602,7 +1598,6 @@ "aws-gamelift-matchmakingruleset.json", "aws-gamelift-script.json", "aws-globalaccelerator-accelerator.json", - "aws-globalaccelerator-crossaccountattachment.json", "aws-globalaccelerator-endpointgroup.json", "aws-globalaccelerator-listener.json", "aws-glue-classifier.json", @@ -1623,7 +1618,6 @@ "aws-glue-securityconfiguration.json", "aws-glue-table.json", "aws-glue-tableoptimizer.json", - "aws-glue-trigger.json", "aws-glue-workflow.json", "aws-grafana-workspace.json", "aws-greengrass-connectordefinition.json", @@ -1752,7 +1746,6 @@ "aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.json", "aws-kinesisanalyticsv2-applicationoutput.json", "aws-kinesisanalyticsv2-applicationreferencedatasource.json", - "aws-kinesisfirehose-deliverystream.json", "aws-kinesisvideo-signalingchannel.json", "aws-kinesisvideo-stream.json", "aws-kms-alias.json", @@ -1765,6 +1758,7 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", + "aws-lambda-alias.json", "aws-lambda-codesigningconfig.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", @@ -1949,7 +1943,6 @@ "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", "aws-rds-globalcluster.json", - "aws-rds-integration.json", "aws-rds-optiongroup.json", "aws-redshift-cluster.json", "aws-redshift-clusterparametergroup.json", @@ -2013,11 +2006,9 @@ "aws-s3outposts-bucket.json", "aws-s3outposts-bucketpolicy.json", "aws-s3outposts-endpoint.json", - "aws-sagemaker-app.json", "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", @@ -2026,7 +2017,6 @@ "aws-sagemaker-inferencecomponent.json", "aws-sagemaker-inferenceexperiment.json", "aws-sagemaker-mlflowtrackingserver.json", - "aws-sagemaker-model.json", "aws-sagemaker-modelbiasjobdefinition.json", "aws-sagemaker-modelcard.json", "aws-sagemaker-modelexplainabilityjobdefinition.json", @@ -2038,13 +2028,10 @@ "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-sagemaker-pipeline.json", "aws-sagemaker-project.json", - "aws-sagemaker-space.json", - "aws-sagemaker-userprofile.json", "aws-sagemaker-workteam.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-secretsmanager-secrettargetattachment.json", @@ -2129,6 +2116,8 @@ "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", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-arczonalshift-zonalautoshiftconfiguration.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-arczonalshift-zonalautoshiftconfiguration.json new file mode 100644 index 0000000000..3bdd4887b2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-arczonalshift-zonalautoshiftconfiguration.json @@ -0,0 +1,169 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "allOf": [ + { + "required": [ + "ResourceIdentifier" + ] + } + ], + "anyOf": [ + { + "required": [ + "ZonalAutoshiftStatus" + ] + }, + { + "required": [ + "PracticeRunConfiguration" + ] + } + ] + } + ], + "createOnlyProperties": [ + "/properties/ResourceIdentifier" + ], + "definitions": { + "ControlCondition": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "maxLength": 1024, + "minLength": 8, + "pattern": "^arn:.*$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/ControlConditionType" + } + }, + "required": [ + "AlarmIdentifier", + "Type" + ], + "type": "object" + }, + "ControlConditionType": { + "enum": [ + "CLOUDWATCH" + ], + "type": "string" + }, + "PracticeRunConfiguration": { + "additionalProperties": false, + "properties": { + "BlockedDates": { + "insertionOrder": false, + "items": { + "maxLength": 10, + "minLength": 10, + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockedWindows": { + "insertionOrder": false, + "items": { + "maxLength": 19, + "minLength": 19, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}-(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockingAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "OutcomeAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "OutcomeAlarms" + ], + "type": "object" + }, + "ZonalAutoshiftStatus": { + "enum": [ + "ENABLED" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "arc-zonal-shift:CreatePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "arc-zonal-shift:DeletePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration" + ] + }, + "list": { + "permissions": [ + "arc-zonal-shift:ListManagedResources" + ] + }, + "read": { + "permissions": [ + "arc-zonal-shift:GetManagedResource" + ] + }, + "update": { + "permissions": [ + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdatePracticeRunConfiguration", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms" + ] + } + }, + "primaryIdentifier": [ + "/properties/ResourceIdentifier" + ], + "properties": { + "PracticeRunConfiguration": { + "$ref": "#/definitions/PracticeRunConfiguration" + }, + "ResourceIdentifier": { + "maxLength": 1024, + "minLength": 8, + "type": "string" + }, + "ZonalAutoshiftStatus": { + "$ref": "#/definitions/ZonalAutoshiftStatus" + } + }, + "tagging": { + "taggable": false + }, + "typeName": "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-batch-jobdefinition.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-batch-jobdefinition.json new file mode 100644 index 0000000000..2d82031cd0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-batch-jobdefinition.json @@ -0,0 +1,992 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tags", + "/properties/JobDefinitionName" + ], + "definitions": { + "AuthorizationConfig": { + "additionalProperties": false, + "properties": { + "AccessPointId": { + "type": "string" + }, + "Iam": { + "type": "string" + } + }, + "type": "object" + }, + "ContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "FargatePlatformConfiguration": { + "$ref": "#/definitions/FargatePlatformConfiguration" + }, + "Image": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "JobRoleArn": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Memory": { + "type": "integer" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + }, + "Vcpus": { + "type": "integer" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Device": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "HostPath": { + "type": "string" + }, + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EcsProperties": { + "additionalProperties": false, + "properties": { + "TaskProperties": { + "items": { + "$ref": "#/definitions/EcsTaskProperties" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "TaskProperties" + ], + "type": "object" + }, + "EcsTaskProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "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": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EfsVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "AuthorizationConfig": { + "$ref": "#/definitions/AuthorizationConfig" + }, + "FileSystemId": { + "type": "string" + }, + "RootDirectory": { + "type": "string" + }, + "TransitEncryption": { + "type": "string" + }, + "TransitEncryptionPort": { + "type": "integer" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EksContainer": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Env": { + "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": { + "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": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Requests": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "type": "object" + }, + "EksContainerSecurityContext": { + "additionalProperties": false, + "properties": { + "AllowPrivilegeEscalation": { + "type": "boolean" + }, + "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" + }, + "EksProperties": { + "additionalProperties": false, + "properties": { + "PodProperties": { + "$ref": "#/definitions/PodProperties" + } + }, + "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" + }, + "FargatePlatformConfiguration": { + "additionalProperties": false, + "properties": { + "PlatformVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ImagePullSecret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "LinuxParameters": { + "additionalProperties": false, + "properties": { + "Devices": { + "items": { + "$ref": "#/definitions/Device" + }, + "type": "array", + "uniqueItems": false + }, + "InitProcessEnabled": { + "type": "boolean" + }, + "MaxSwap": { + "type": "integer" + }, + "SharedMemorySize": { + "type": "integer" + }, + "Swappiness": { + "type": "integer" + }, + "Tmpfs": { + "items": { + "$ref": "#/definitions/Tmpfs" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "SecretOptions": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "Metadata": { + "additionalProperties": false, + "properties": { + "Labels": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "type": "object" + }, + "MountPoints": { + "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": { + "items": { + "$ref": "#/definitions/NodeRangeProperty" + }, + "type": "array", + "uniqueItems": false + }, + "NumNodes": { + "type": "integer" + } + }, + "required": [ + "MainNode", + "NodeRangeProperties", + "NumNodes" + ], + "type": "object" + }, + "NodeRangeProperty": { + "additionalProperties": false, + "properties": { + "Container": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "TargetNodes": { + "type": "string" + } + }, + "required": [ + "TargetNodes" + ], + "type": "object" + }, + "PodProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "DnsPolicy": { + "type": "string" + }, + "HostNetwork": { + "type": "boolean" + }, + "ImagePullSecrets": { + "items": { + "$ref": "#/definitions/ImagePullSecret" + }, + "type": "array", + "uniqueItems": false + }, + "InitContainers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "Metadata": { + "$ref": "#/definitions/Metadata" + }, + "ServiceAccountName": { + "type": "string" + }, + "ShareProcessNamespace": { + "type": "boolean" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/EksVolume" + }, + "type": "array", + "uniqueItems": false + } + }, + "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": { + "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": [ + "ValueFrom", + "Name" + ], + "type": "object" + }, + "TaskContainerDependency": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "ContainerName": { + "type": "string" + } + }, + "required": [ + "Condition", + "ContainerName" + ], + "type": "object" + }, + "TaskContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "DependsOn": { + "items": { + "$ref": "#/definitions/TaskContainerDependency" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "Essential": { + "type": "boolean" + }, + "Image": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "Name": { + "type": "string" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Timeout": { + "additionalProperties": false, + "properties": { + "AttemptDurationSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tmpfs": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "MountOptions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Size": { + "type": "integer" + } + }, + "required": [ + "Size", + "ContainerPath" + ], + "type": "object" + }, + "Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "integer" + } + }, + "required": [ + "SoftLimit", + "HardLimit", + "Name" + ], + "type": "object" + }, + "Volumes": { + "additionalProperties": false, + "properties": { + "EfsVolumeConfiguration": { + "$ref": "#/definitions/EfsVolumeConfiguration" + }, + "Host": { + "$ref": "#/definitions/VolumesHost" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "VolumesHost": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContainerProperties": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "EksProperties": { + "$ref": "#/definitions/EksProperties" + }, + "Id": { + "type": "string" + }, + "JobDefinitionName": { + "type": "string" + }, + "NodeProperties": { + "$ref": "#/definitions/NodeProperties" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "PlatformCapabilities": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "PropagateTags": { + "type": "boolean" + }, + "RetryStrategy": { + "$ref": "#/definitions/RetryStrategy" + }, + "SchedulingPriority": { + "type": "integer" + }, + "Tags": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Timeout": { + "$ref": "#/definitions/Timeout" + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type" + ], + "typeName": "AWS::Batch::JobDefinition" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanroomsml-trainingdataset.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanroomsml-trainingdataset.json new file mode 100644 index 0000000000..bdb81299cb --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanroomsml-trainingdataset.json @@ -0,0 +1,249 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Description", + "/properties/Name", + "/properties/RoleArn", + "/properties/TrainingData" + ], + "definitions": { + "ColumnSchema": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "ColumnTypes": { + "items": { + "$ref": "#/definitions/ColumnType" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ColumnName", + "ColumnTypes" + ], + "type": "object" + }, + "ColumnType": { + "enum": [ + "USER_ID", + "ITEM_ID", + "TIMESTAMP", + "CATEGORICAL_FEATURE", + "NUMERICAL_FEATURE" + ], + "type": "string" + }, + "DataSource": { + "additionalProperties": false, + "properties": { + "GlueDataSource": { + "$ref": "#/definitions/GlueDataSource" + } + }, + "required": [ + "GlueDataSource" + ], + "type": "object" + }, + "Dataset": { + "additionalProperties": false, + "properties": { + "InputConfig": { + "$ref": "#/definitions/DatasetInputConfig" + }, + "Type": { + "$ref": "#/definitions/DatasetType" + } + }, + "required": [ + "InputConfig", + "Type" + ], + "type": "object" + }, + "DatasetInputConfig": { + "additionalProperties": false, + "properties": { + "DataSource": { + "$ref": "#/definitions/DataSource" + }, + "Schema": { + "items": { + "$ref": "#/definitions/ColumnSchema" + }, + "maxItems": 100, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "DataSource", + "Schema" + ], + "type": "object" + }, + "DatasetType": { + "enum": [ + "INTERACTIONS" + ], + "type": "string" + }, + "GlueDataSource": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "DatabaseName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_]+-)*([a-zA-Z0-9_]+))?$", + "type": "string" + }, + "TableName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + } + }, + "required": [ + "DatabaseName", + "TableName" + ], + "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" + }, + "TrainingDatasetStatus": { + "enum": [ + "ACTIVE" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms-ml:CreateTrainingDataset", + "cleanrooms-ml:GetTrainingDataset", + "cleanrooms-ml:TagResource", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "cleanrooms-ml:DeleteTrainingDataset" + ] + }, + "list": { + "permissions": [ + "cleanrooms-ml:ListTrainingDatasets" + ] + }, + "read": { + "permissions": [ + "cleanrooms-ml:GetTrainingDataset" + ] + }, + "update": { + "permissions": [ + "cleanrooms-ml:TagResource", + "cleanrooms-ml:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/TrainingDatasetArn" + ], + "properties": { + "Description": { + "maxLength": 255, + "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", + "type": "string" + }, + "Name": { + "maxLength": 63, + "minLength": 1, + "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[-a-z]*:iam::[0-9]{12}:role/.+$", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/TrainingDatasetStatus" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TrainingData": { + "items": { + "$ref": "#/definitions/Dataset" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "TrainingDatasetArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:training-dataset/[-a-zA-Z0-9_/.]+$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Status", + "/properties/TrainingDatasetArn" + ], + "required": [ + "Name", + "RoleArn", + "TrainingData" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRoomsML::TrainingDataset" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-fms-policy.json new file mode 100644 index 0000000000..8456d02fd6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-fms-policy.json @@ -0,0 +1,472 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkAclCommonPolicy": { + "additionalProperties": false, + "properties": { + "NetworkAclEntrySet": { + "$ref": "#/definitions/NetworkAclEntrySet" + } + }, + "required": [ + "NetworkAclEntrySet" + ], + "type": "object" + }, + "NetworkAclEntry": { + "additionalProperties": false, + "properties": { + "CidrBlock": { + "pattern": "^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))$", + "type": "string" + }, + "Egress": { + "type": "boolean" + }, + "IcmpTypeCode": { + "additionalProperties": false, + "properties": { + "Code": { + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "Type": { + "maximum": 255, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Code", + "Type" + ], + "type": "object" + }, + "Ipv6CidrBlock": { + "pattern": "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))(/(1[0-2]|[0-9]))?$", + "type": "string" + }, + "PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + }, + "To": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "From", + "To" + ], + "type": "object" + }, + "Protocol": { + "pattern": "^(tcp|udp|icmp|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", + "type": "string" + }, + "RuleAction": { + "enum": [ + "allow", + "deny" + ], + "type": "string" + } + }, + "required": [ + "Egress", + "Protocol", + "RuleAction" + ], + "type": "object" + }, + "NetworkAclEntryList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/NetworkAclEntry" + }, + "type": "array" + }, + "NetworkAclEntrySet": { + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "FirstEntries" + ] + }, + { + "required": [ + "LastEntries" + ] + } + ], + "properties": { + "FirstEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + }, + "ForceRemediateForFirstEntries": { + "type": "boolean" + }, + "ForceRemediateForLastEntries": { + "type": "boolean" + }, + "LastEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + } + }, + "required": [ + "ForceRemediateForFirstEntries", + "ForceRemediateForLastEntries" + ], + "type": "object" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + }, + { + "required": [ + "NetworkAclCommonPolicy" + ] + } + ], + "properties": { + "NetworkAclCommonPolicy": { + "$ref": "#/definitions/NetworkAclCommonPolicy" + }, + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL", + "NETWORK_ACL_COMMON" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-globalaccelerator-crossaccountattachment.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-globalaccelerator-crossaccountattachment.json new file mode 100644 index 0000000000..31881ad480 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-globalaccelerator-crossaccountattachment.json @@ -0,0 +1,123 @@ +{ + "additionalProperties": false, + "definitions": { + "Resource": { + "additionalProperties": false, + "properties": { + "EndpointId": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "EndpointId" + ], + "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": [ + "globalaccelerator:DescribeCrossAccountAttachment", + "globalaccelerator:CreateCrossAccountAttachment", + "globalaccelerator:TagResource" + ] + }, + "delete": { + "permissions": [ + "globalaccelerator:DescribeCrossAccountAttachment", + "globalaccelerator:DeleteCrossAccountAttachment" + ] + }, + "list": { + "permissions": [ + "globalaccelerator:ListCrossAccountAttachments" + ] + }, + "read": { + "permissions": [ + "globalaccelerator:DescribeCrossAccountAttachment" + ] + }, + "update": { + "permissions": [ + "globalaccelerator:UpdateCrossAccountAttachment", + "globalaccelerator:DescribeCrossAccountAttachment", + "globalaccelerator:TagResource", + "globalaccelerator:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AttachmentArn" + ], + "properties": { + "AttachmentArn": { + "type": "string" + }, + "Name": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]{0,64}$", + "type": "string" + }, + "Principals": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Resources": { + "items": { + "$ref": "#/definitions/Resource" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/AttachmentArn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-globalaccelerator", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::GlobalAccelerator::CrossAccountAttachment", + "writeOnlyProperties": [ + "/properties/Resources/*/Region" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-glue-trigger.json new file mode 100644 index 0000000000..974dd89b9f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-glue-trigger.json @@ -0,0 +1,172 @@ +{ + "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/ap_northeast_2/aws-kinesisfirehose-deliverystream.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-kinesisfirehose-deliverystream.json new file mode 100644 index 0000000000..37b2adaff0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-kinesisfirehose-deliverystream.json @@ -0,0 +1,1607 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeliveryStreamName", + "/properties/DeliveryStreamType", + "/properties/ElasticsearchDestinationConfiguration/VpcConfiguration", + "/properties/AmazonopensearchserviceDestinationConfiguration/VpcConfiguration", + "/properties/AmazonOpenSearchServerlessDestinationConfiguration/VpcConfiguration", + "/properties/KinesisStreamSourceConfiguration", + "/properties/MSKSourceConfiguration", + "/properties/SnowflakeDestinationConfiguration/SnowflakeVpcConfiguration" + ], + "definitions": { + "AmazonOpenSearchServerlessBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonOpenSearchServerlessDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonOpenSearchServerlessBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CollectionEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "relationshipRef": { + "propertyPath": "/properties/CollectionEndpoint", + "typeName": "AWS::OpenSearchServerless::Collection" + }, + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonOpenSearchServerlessRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonOpenSearchServerlessRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonopensearchserviceBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonopensearchserviceRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "Connectivity": { + "enum": [ + "PUBLIC", + "PRIVATE" + ], + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "Connectivity" + ], + "type": "object" + }, + "BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": { + "relationshipRef": { + "propertyPath": "/properties/LogGroupName", + "typeName": "AWS::Logs::LogGroup" + }, + "type": "string" + }, + "LogStreamName": { + "relationshipRef": { + "propertyPath": "/properties/LogStreamName", + "typeName": "AWS::Logs::LogStream" + }, + "type": "string" + } + }, + "type": "object" + }, + "CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableColumns": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableName": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/SchemaConfiguration" + } + }, + "type": "object" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + }, + "KeyType": { + "enum": [ + "AWS_OWNED_CMK", + "CUSTOMER_MANAGED_CMK" + ], + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/OpenXJsonSerDe" + } + }, + "type": "object" + }, + "DocumentIdOptions": { + "additionalProperties": false, + "properties": { + "DefaultDocumentIdFormat": { + "enum": [ + "FIREHOSE_DEFAULT", + "NO_DOCUMENT_ID" + ], + "type": "string" + } + }, + "required": [ + "DefaultDocumentIdFormat" + ], + "type": "object" + }, + "DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + } + }, + "type": "object" + }, + "ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/ElasticsearchBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Elasticsearch::Domain" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::OpenSearchService::Domain" + } + } + ], + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/ElasticsearchRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "ElasticsearchRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KMSEncryptionConfig": { + "$ref": "#/definitions/KMSEncryptionConfig" + }, + "NoEncryptionConfig": { + "enum": [ + "NoEncryption" + ], + "type": "string" + } + }, + "type": "object" + }, + "ExtendedS3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "CustomTimeZone": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "DataFormatConversionConfiguration": { + "$ref": "#/definitions/DataFormatConversionConfiguration" + }, + "DynamicPartitioningConfiguration": { + "$ref": "#/definitions/DynamicPartitioningConfiguration" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "FileExtension": { + "maxLength": 128, + "minLength": 0, + "pattern": "^$|\\.[0-9a-z!\\-_.*'()]+", + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "HiveJsonSerDe": { + "additionalProperties": false, + "properties": { + "TimestampFormats": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "HttpEndpointCommonAttribute": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeValue" + ], + "type": "object" + }, + "HttpEndpointConfiguration": { + "additionalProperties": false, + "properties": { + "AccessKey": { + "maxLength": 4096, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Url": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "HttpEndpointDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/HttpEndpointConfiguration" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RequestConfiguration": { + "$ref": "#/definitions/HttpEndpointRequestConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "EndpointConfiguration", + "S3Configuration" + ], + "type": "object" + }, + "HttpEndpointRequestConfiguration": { + "additionalProperties": false, + "properties": { + "CommonAttributes": { + "items": { + "$ref": "#/definitions/HttpEndpointCommonAttribute" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "ContentEncoding": { + "enum": [ + "NONE", + "GZIP" + ], + "type": "string" + } + }, + "type": "object" + }, + "InputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Deserializer": { + "$ref": "#/definitions/Deserializer" + } + }, + "type": "object" + }, + "KMSEncryptionConfig": { + "additionalProperties": false, + "properties": { + "AWSKMSKeyARN": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + } + }, + "required": [ + "AWSKMSKeyARN" + ], + "type": "object" + }, + "KinesisStreamSourceConfiguration": { + "additionalProperties": false, + "properties": { + "KinesisStreamARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "KinesisStreamARN" + ], + "type": "object" + }, + "MSKSourceConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AuthenticationConfiguration" + }, + "MSKClusterARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::MSK::Cluster" + }, + "type": "string" + }, + "TopicName": { + "maxLength": 255, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\._\\-]+", + "type": "string" + } + }, + "required": [ + "MSKClusterARN", + "TopicName", + "AuthenticationConfiguration" + ], + "type": "object" + }, + "OpenXJsonSerDe": { + "additionalProperties": false, + "properties": { + "CaseInsensitive": { + "type": "boolean" + }, + "ColumnToJsonKeyMappings": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ConvertDotsInJsonKeysToUnderscores": { + "type": "boolean" + } + }, + "type": "object" + }, + "OrcSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "BloomFilterColumns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BloomFilterFalsePositiveProbability": { + "type": "number" + }, + "Compression": { + "type": "string" + }, + "DictionaryKeyThreshold": { + "type": "number" + }, + "EnablePadding": { + "type": "boolean" + }, + "FormatVersion": { + "type": "string" + }, + "PaddingTolerance": { + "type": "number" + }, + "RowIndexStride": { + "type": "integer" + }, + "StripeSizeBytes": { + "type": "integer" + } + }, + "type": "object" + }, + "OutputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Serializer": { + "$ref": "#/definitions/Serializer" + } + }, + "type": "object" + }, + "ParquetSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "Compression": { + "type": "string" + }, + "EnableDictionaryCompression": { + "type": "boolean" + }, + "MaxPaddingBytes": { + "type": "integer" + }, + "PageSizeBytes": { + "type": "integer" + }, + "WriterVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Processors": { + "items": { + "$ref": "#/definitions/Processor" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Processor": { + "additionalProperties": false, + "properties": { + "Parameters": { + "items": { + "$ref": "#/definitions/ProcessorParameter" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "enum": [ + "RecordDeAggregation", + "Decompression", + "CloudWatchLogProcessing", + "Lambda", + "MetadataExtraction", + "AppendDelimiterToRecord" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ProcessorParameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Lambda::Function" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Lambda::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "RedshiftDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterJDBCURL": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "CopyCommand": { + "$ref": "#/definitions/CopyCommand" + }, + "Password": { + "maxLength": 512, + "minLength": 6, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RedshiftRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "Username": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "S3Configuration", + "ClusterJDBCURL", + "CopyCommand", + "RoleARN" + ], + "type": "object" + }, + "RedshiftRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "RetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "SchemaConfiguration": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Database" + }, + "type": "string" + }, + "Region": { + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "TableName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Table" + }, + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "SecretsManagerConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecretARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::SecretsManager::Secret" + }, + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Serializer": { + "additionalProperties": false, + "properties": { + "OrcSerDe": { + "$ref": "#/definitions/OrcSerDe" + }, + "ParquetSerDe": { + "$ref": "#/definitions/ParquetSerDe" + } + }, + "type": "object" + }, + "SnowflakeDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "AccountUrl": { + "maxLength": 2048, + "minLength": 24, + "pattern": ".+?\\.snowflakecomputing\\.com", + "type": "string" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ContentColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "DataLoadingOption": { + "enum": [ + "JSON_MAPPING", + "VARIANT_CONTENT_MAPPING", + "VARIANT_CONTENT_AND_METADATA_MAPPING" + ], + "type": "string" + }, + "Database": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyPassphrase": { + "maxLength": 255, + "minLength": 7, + "type": "string" + }, + "MetaDataColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "PrivateKey": { + "maxLength": 4096, + "minLength": 256, + "pattern": "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$", + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SnowflakeRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDataOnly", + "AllData" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "Schema": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "SnowflakeRoleConfiguration": { + "$ref": "#/definitions/SnowflakeRoleConfiguration" + }, + "SnowflakeVpcConfiguration": { + "$ref": "#/definitions/SnowflakeVpcConfiguration" + }, + "Table": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "User": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "AccountUrl", + "Database", + "Schema", + "Table", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "SnowflakeRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "SnowflakeRoleConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SnowflakeRole": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "SnowflakeVpcConfiguration": { + "additionalProperties": false, + "properties": { + "PrivateLinkVpceId": { + "maxLength": 255, + "minLength": 47, + "pattern": "([a-zA-Z0-9\\-\\_]+\\.){2,3}vpce\\.[a-zA-Z0-9\\-]*\\.vpce-svc\\-[a-zA-Z0-9\\-]{17}$", + "type": "string" + } + }, + "required": [ + "PrivateLinkVpceId" + ], + "type": "object" + }, + "SplunkBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "SplunkDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/SplunkBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "HECAcknowledgmentTimeoutInSeconds": { + "maximum": 600, + "minimum": 180, + "type": "integer" + }, + "HECEndpoint": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "HECEndpointType": { + "enum": [ + "Raw", + "Event" + ], + "type": "string" + }, + "HECToken": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SplunkRetryOptions" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "HECEndpoint", + "S3Configuration", + "HECEndpointType" + ], + "type": "object" + }, + "SplunkRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "VpcConfiguration": { + "additionalProperties": false, + "properties": { + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/GroupId", + "typeName": "AWS::EC2::SecurityGroup" + }, + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::Subnet" + }, + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "RoleARN", + "SubnetIds", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "firehose:CreateDeliveryStream", + "firehose:DescribeDeliveryStream", + "iam:GetRole", + "iam:PassRole", + "kms:CreateGrant", + "kms:DescribeKey" + ] + }, + "delete": { + "permissions": [ + "firehose:DeleteDeliveryStream", + "firehose:DescribeDeliveryStream", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + }, + "list": { + "permissions": [ + "firehose:ListDeliveryStreams" + ] + }, + "read": { + "permissions": [ + "firehose:DescribeDeliveryStream", + "firehose:ListTagsForDeliveryStream" + ] + }, + "update": { + "permissions": [ + "firehose:UpdateDestination", + "firehose:DescribeDeliveryStream", + "firehose:StartDeliveryStreamEncryption", + "firehose:StopDeliveryStreamEncryption", + "firehose:ListTagsForDeliveryStream", + "firehose:TagDeliveryStream", + "firehose:UntagDeliveryStream", + "kms:CreateGrant", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + } + }, + "primaryIdentifier": [ + "/properties/DeliveryStreamName" + ], + "properties": { + "AmazonOpenSearchServerlessDestinationConfiguration": { + "$ref": "#/definitions/AmazonOpenSearchServerlessDestinationConfiguration" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "$ref": "#/definitions/AmazonopensearchserviceDestinationConfiguration" + }, + "Arn": { + "type": "string" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/DeliveryStreamEncryptionConfigurationInput" + }, + "DeliveryStreamName": { + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9._-]+", + "type": "string" + }, + "DeliveryStreamType": { + "enum": [ + "DirectPut", + "KinesisStreamAsSource", + "MSKAsSource" + ], + "type": "string" + }, + "ElasticsearchDestinationConfiguration": { + "$ref": "#/definitions/ElasticsearchDestinationConfiguration" + }, + "ExtendedS3DestinationConfiguration": { + "$ref": "#/definitions/ExtendedS3DestinationConfiguration" + }, + "HttpEndpointDestinationConfiguration": { + "$ref": "#/definitions/HttpEndpointDestinationConfiguration" + }, + "KinesisStreamSourceConfiguration": { + "$ref": "#/definitions/KinesisStreamSourceConfiguration" + }, + "MSKSourceConfiguration": { + "$ref": "#/definitions/MSKSourceConfiguration" + }, + "RedshiftDestinationConfiguration": { + "$ref": "#/definitions/RedshiftDestinationConfiguration" + }, + "S3DestinationConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SnowflakeDestinationConfiguration": { + "$ref": "#/definitions/SnowflakeDestinationConfiguration" + }, + "SplunkDestinationConfiguration": { + "$ref": "#/definitions/SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "typeName": "AWS::KinesisFirehose::DeliveryStream" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-lambda-alias.json deleted file mode 100644 index 4a291518b6..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/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/ap_northeast_2/aws-rds-integration.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-integration.json new file mode 100644 index 0000000000..8bb00c0dfe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-integration.json @@ -0,0 +1,154 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SourceArn", + "/properties/TargetArn", + "/properties/KMSKeyId", + "/properties/AdditionalEncryptionContext" + ], + "definitions": { + "EncryptionContextMap": { + "additionalProperties": false, + "patternProperties": { + "^[\\s\\S]*$": { + "maxLength": 131072, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "handlers": { + "create": { + "permissions": [ + "rds:CreateIntegration", + "rds:DescribeIntegrations", + "rds:AddTagsToResource", + "kms:CreateGrant", + "kms:DescribeKey", + "redshift:CreateInboundIntegration" + ] + }, + "delete": { + "permissions": [ + "rds:DeleteIntegration", + "rds:DescribeIntegrations" + ] + }, + "list": { + "permissions": [ + "rds:DescribeIntegrations" + ] + }, + "read": { + "permissions": [ + "rds:DescribeIntegrations" + ] + }, + "update": { + "permissions": [ + "rds:DescribeIntegrations", + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource", + "rds:ModifyIntegration" + ] + } + }, + "primaryIdentifier": [ + "/properties/IntegrationArn" + ], + "properties": { + "AdditionalEncryptionContext": { + "$ref": "#/definitions/EncryptionContextMap" + }, + "CreateTime": { + "type": "string" + }, + "DataFilter": { + "maxLength": 25600, + "minLength": 1, + "pattern": "[a-zA-Z0-9_ \"\\\\\\-$,*.:?+\\/]*", + "type": "string" + }, + "Description": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + }, + "IntegrationArn": { + "type": "string" + }, + "IntegrationName": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "KMSKeyId": { + "type": "string" + }, + "SourceArn": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "TargetArn": { + "type": "string" + } + }, + "propertyTransform": { + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/SourceArn": "$lowercase(SourceArn)" + }, + "readOnlyProperties": [ + "/properties/IntegrationArn", + "/properties/CreateTime" + ], + "required": [ + "SourceArn", + "TargetArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-app.json new file mode 100644 index 0000000000..d565ffb835 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-app.json @@ -0,0 +1,210 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/Tags", + "/properties/ResourceSpec" + ], + "definitions": { + "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" + }, + "SageMakerImageArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:DescribeApp" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DescribeApp" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListApps" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeApp", + "sagemaker:DescribeApp" + ] + } + }, + "primaryIdentifier": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName" + ], + "properties": { + "AppArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app/.*", + "type": "string" + }, + "AppName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "RStudioServerPro", + "RSessionGateway", + "Canvas" + ], + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "ResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/AppArn" + ], + "required": [ + "AppName", + "AppType", + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::App", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-domain.json new file mode 100644 index 0000000000..5cd4ea45fa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-domain.json @@ -0,0 +1,831 @@ +{ + "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" + } + }, + "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" + } + }, + "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_2/aws-sagemaker-model.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-model.json new file mode 100644 index 0000000000..ef768bc0ed --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-model.json @@ -0,0 +1,235 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ExecutionRoleArn", + "/properties/EnableNetworkIsolation", + "/properties/InferenceExecutionConfig", + "/properties/PrimaryContainer", + "/properties/ModelName", + "/properties/VpcConfig", + "/properties/Containers" + ], + "definitions": { + "ContainerDefinition": { + "additionalProperties": false, + "properties": { + "ContainerHostname": { + "type": "string" + }, + "Environment": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Image": { + "type": "string" + }, + "ImageConfig": { + "$ref": "#/definitions/ImageConfig" + }, + "InferenceSpecificationName": { + "type": "string" + }, + "Mode": { + "type": "string" + }, + "ModelDataSource": { + "$ref": "#/definitions/ModelDataSource" + }, + "ModelDataUrl": { + "type": "string" + }, + "ModelPackageName": { + "type": "string" + }, + "MultiModelConfig": { + "$ref": "#/definitions/MultiModelConfig" + } + }, + "type": "object" + }, + "ImageConfig": { + "additionalProperties": false, + "properties": { + "RepositoryAccessMode": { + "type": "string" + }, + "RepositoryAuthConfig": { + "$ref": "#/definitions/RepositoryAuthConfig" + } + }, + "required": [ + "RepositoryAccessMode" + ], + "type": "object" + }, + "InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "ModelAccessConfig": { + "additionalProperties": false, + "properties": { + "AcceptEula": { + "type": "boolean" + } + }, + "required": [ + "AcceptEula" + ], + "type": "object" + }, + "ModelDataSource": { + "additionalProperties": false, + "properties": { + "S3DataSource": { + "$ref": "#/definitions/S3DataSource" + } + }, + "required": [ + "S3DataSource" + ], + "type": "object" + }, + "MultiModelConfig": { + "additionalProperties": false, + "properties": { + "ModelCacheSetting": { + "type": "string" + } + }, + "type": "object" + }, + "RepositoryAuthConfig": { + "additionalProperties": false, + "properties": { + "RepositoryCredentialsProviderArn": { + "type": "string" + } + }, + "required": [ + "RepositoryCredentialsProviderArn" + ], + "type": "object" + }, + "S3DataSource": { + "additionalProperties": false, + "properties": { + "CompressionType": { + "type": "string" + }, + "ModelAccessConfig": { + "$ref": "#/definitions/ModelAccessConfig" + }, + "S3DataType": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "S3Uri", + "S3DataType", + "CompressionType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Subnets", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/ContainerDefinition" + }, + "type": "array", + "uniqueItems": false + }, + "EnableNetworkIsolation": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/InferenceExecutionConfig" + }, + "ModelName": { + "type": "string" + }, + "PrimaryContainer": { + "$ref": "#/definitions/ContainerDefinition" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcConfig": { + "$ref": "#/definitions/VpcConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SageMaker::Model" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-space.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-space.json new file mode 100644 index 0000000000..1ad92e7aa4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-space.json @@ -0,0 +1,436 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/SpaceName", + "/properties/SpaceSharingSettings", + "/properties/OwnershipSettings" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "TensorBoard", + "RStudioServerPro", + "RSessionGateway", + "JupyterLab", + "CodeEditor" + ], + "type": "string" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystem": { + "additionalProperties": false, + "properties": { + "EFSFileSystem": { + "$ref": "#/definitions/EFSFileSystem" + } + }, + "type": "object" + }, + "CustomFileSystems": { + "items": { + "$ref": "#/definitions/CustomFileSystem" + }, + "maxItems": 1, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "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" + }, + "EFSFileSystem": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EbsStorageSettings": { + "additionalProperties": false, + "properties": { + "EbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "EbsVolumeSizeInGb" + ], + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "OwnershipSettings": { + "additionalProperties": false, + "properties": { + "OwnerUserProfileName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "required": [ + "OwnerUserProfileName" + ], + "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" + }, + "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" + }, + "SpaceCodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "SpaceJupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "SpaceSettings": { + "additionalProperties": false, + "properties": { + "AppType": { + "$ref": "#/definitions/AppType" + }, + "CodeEditorAppSettings": { + "$ref": "#/definitions/SpaceCodeEditorAppSettings" + }, + "CustomFileSystems": { + "$ref": "#/definitions/CustomFileSystems" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/SpaceJupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/SpaceStorageSettings" + } + }, + "type": "object" + }, + "SpaceSharingSettings": { + "additionalProperties": false, + "properties": { + "SharingType": { + "enum": [ + "Private", + "Shared" + ], + "type": "string" + } + }, + "required": [ + "SharingType" + ], + "type": "object" + }, + "SpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "EbsStorageSettings": { + "$ref": "#/definitions/EbsStorageSettings" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateSpace", + "sagemaker:DescribeSpace" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteSpace", + "sagemaker:DescribeSpace" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListSpaces" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeSpace" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateSpace", + "sagemaker:DescribeSpace" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId", + "/properties/SpaceName" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "OwnershipSettings": { + "$ref": "#/definitions/OwnershipSettings" + }, + "SpaceArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:space/.*", + "type": "string" + }, + "SpaceDisplayName": { + "maxLength": 64, + "pattern": "^(?!\\s*$).+", + "type": "string" + }, + "SpaceName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SpaceSettings": { + "$ref": "#/definitions/SpaceSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + }, + "SpaceSharingSettings": { + "$ref": "#/definitions/SpaceSharingSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/SpaceArn", + "/properties/Url" + ], + "required": [ + "DomainId", + "SpaceName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SageMaker::Space", + "writeOnlyProperties": [ + "/properties/SpaceSettings", + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..c2c0daf9fe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-sagemaker-userprofile.json @@ -0,0 +1,592 @@ +{ + "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" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "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" + }, + "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_2/aws-secretsmanager-resourcepolicy.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-secretsmanager-resourcepolicy.json new file mode 100644 index 0000000000..92fc7be26c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/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_northeast_2/aws-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-stepfunctions-activity.json deleted file mode 100644 index 7aaf191ed1..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-stepfunctions-activity.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateActivity", - "states:TagResource" - ] - }, - "delete": { - "permissions": [ - "states:DescribeActivity", - "states:DeleteActivity" - ] - }, - "list": { - "permissions": [ - "states:ListActivities" - ] - }, - "read": { - "permissions": [ - "states:DescribeActivity", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:ListTagsForResource", - "states:TagResource", - "states:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::Activity" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-stepfunctions-statemachine.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-stepfunctions-statemachine.json deleted file mode 100644 index c8a1b0f42e..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-stepfunctions-statemachine.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/StateMachineName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StateMachineName", - "/properties/StateMachineType" - ], - "definitions": { - "CloudWatchLogsLogGroup": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Definition": { - "minProperties": 1, - "type": "object" - }, - "DefinitionSubstitutions": { - "additionalProperties": false, - "minProperties": 1, - "patternProperties": { - ".*": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer" - }, - { - "type": "boolean" - } - ] - } - }, - "type": "object" - }, - "LogDestination": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsLogGroup": { - "$ref": "#/definitions/CloudWatchLogsLogGroup" - } - }, - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "Destinations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LogDestination" - }, - "minItems": 1, - "type": "array" - }, - "IncludeExecutionData": { - "type": "boolean" - }, - "Level": { - "enum": [ - "ALL", - "ERROR", - "FATAL", - "OFF" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TracingConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateStateMachine", - "states:DescribeStateMachine", - "states:TagResource", - "iam:PassRole", - "s3:GetObject" - ] - }, - "delete": { - "permissions": [ - "states:DeleteStateMachine", - "states:DescribeStateMachine" - ] - }, - "list": { - "permissions": [ - "states:ListStateMachines" - ] - }, - "read": { - "permissions": [ - "states:DescribeStateMachine", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:UpdateStateMachine", - "states:TagResource", - "states:UntagResource", - "states:ListTagsForResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Definition": { - "$ref": "#/definitions/Definition" - }, - "DefinitionS3Location": { - "$ref": "#/definitions/S3Location" - }, - "DefinitionString": { - "maxLength": 1048576, - "minLength": 1, - "type": "string" - }, - "DefinitionSubstitutions": { - "$ref": "#/definitions/DefinitionSubstitutions" - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "RoleArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineName": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "StateMachineRevisionId": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineType": { - "enum": [ - "STANDARD", - "EXPRESS" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - }, - "TracingConfiguration": { - "$ref": "#/definitions/TracingConfiguration" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/StateMachineRevisionId" - ], - "required": [ - "RoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::StateMachine", - "writeOnlyProperties": [ - "/properties/Definition", - "/properties/DefinitionS3Location", - "/properties/DefinitionSubstitutions" - ] -} 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 f0f5962888..38015c8c56 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py @@ -836,7 +836,6 @@ "aws-appsync-graphqlschema.json", "aws-appsync-resolver.json", "aws-appsync-sourceapiassociation.json", - "aws-arczonalshift-zonalautoshiftconfiguration.json", "aws-athena-datacatalog.json", "aws-athena-namedquery.json", "aws-athena-preparedstatement.json", @@ -854,7 +853,6 @@ "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-ce-anomalymonitor.json", @@ -1107,7 +1105,6 @@ "aws-eventschemas-registrypolicy.json", "aws-eventschemas-schema.json", "aws-fms-notificationchannel.json", - "aws-fms-policy.json", "aws-fms-resourceset.json", "aws-fsx-datarepositoryassociation.json", "aws-fsx-filesystem.json", @@ -1131,7 +1128,6 @@ "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", @@ -1173,7 +1169,6 @@ "aws-kinesis-stream.json", "aws-kinesis-streamconsumer.json", "aws-kinesisanalyticsv2-application.json", - "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", "aws-kms-key.json", "aws-kms-replicakey.json", @@ -1302,7 +1297,6 @@ "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", "aws-rds-globalcluster.json", - "aws-rds-integration.json", "aws-rds-optiongroup.json", "aws-redshift-cluster.json", "aws-redshift-clusterparametergroup.json", @@ -1360,11 +1354,9 @@ "aws-s3outposts-bucket.json", "aws-s3outposts-bucketpolicy.json", "aws-s3outposts-endpoint.json", - "aws-sagemaker-app.json", "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", @@ -1372,7 +1364,6 @@ "aws-sagemaker-imageversion.json", "aws-sagemaker-inferenceexperiment.json", "aws-sagemaker-mlflowtrackingserver.json", - "aws-sagemaker-model.json", "aws-sagemaker-modelbiasjobdefinition.json", "aws-sagemaker-modelcard.json", "aws-sagemaker-modelexplainabilityjobdefinition.json", @@ -1384,8 +1375,6 @@ "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-sagemaker-pipeline.json", "aws-sagemaker-project.json", - "aws-sagemaker-space.json", - "aws-sagemaker-userprofile.json", "aws-scheduler-schedule.json", "aws-scheduler-schedulegroup.json", "aws-sdb-domain.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-arczonalshift-zonalautoshiftconfiguration.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-arczonalshift-zonalautoshiftconfiguration.json new file mode 100644 index 0000000000..3bdd4887b2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-arczonalshift-zonalautoshiftconfiguration.json @@ -0,0 +1,169 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "allOf": [ + { + "required": [ + "ResourceIdentifier" + ] + } + ], + "anyOf": [ + { + "required": [ + "ZonalAutoshiftStatus" + ] + }, + { + "required": [ + "PracticeRunConfiguration" + ] + } + ] + } + ], + "createOnlyProperties": [ + "/properties/ResourceIdentifier" + ], + "definitions": { + "ControlCondition": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "maxLength": 1024, + "minLength": 8, + "pattern": "^arn:.*$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/ControlConditionType" + } + }, + "required": [ + "AlarmIdentifier", + "Type" + ], + "type": "object" + }, + "ControlConditionType": { + "enum": [ + "CLOUDWATCH" + ], + "type": "string" + }, + "PracticeRunConfiguration": { + "additionalProperties": false, + "properties": { + "BlockedDates": { + "insertionOrder": false, + "items": { + "maxLength": 10, + "minLength": 10, + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockedWindows": { + "insertionOrder": false, + "items": { + "maxLength": 19, + "minLength": 19, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}-(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockingAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "OutcomeAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "OutcomeAlarms" + ], + "type": "object" + }, + "ZonalAutoshiftStatus": { + "enum": [ + "ENABLED" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "arc-zonal-shift:CreatePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "arc-zonal-shift:DeletePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration" + ] + }, + "list": { + "permissions": [ + "arc-zonal-shift:ListManagedResources" + ] + }, + "read": { + "permissions": [ + "arc-zonal-shift:GetManagedResource" + ] + }, + "update": { + "permissions": [ + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdatePracticeRunConfiguration", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms" + ] + } + }, + "primaryIdentifier": [ + "/properties/ResourceIdentifier" + ], + "properties": { + "PracticeRunConfiguration": { + "$ref": "#/definitions/PracticeRunConfiguration" + }, + "ResourceIdentifier": { + "maxLength": 1024, + "minLength": 8, + "type": "string" + }, + "ZonalAutoshiftStatus": { + "$ref": "#/definitions/ZonalAutoshiftStatus" + } + }, + "tagging": { + "taggable": false + }, + "typeName": "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-batch-jobdefinition.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-batch-jobdefinition.json new file mode 100644 index 0000000000..2d82031cd0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-batch-jobdefinition.json @@ -0,0 +1,992 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tags", + "/properties/JobDefinitionName" + ], + "definitions": { + "AuthorizationConfig": { + "additionalProperties": false, + "properties": { + "AccessPointId": { + "type": "string" + }, + "Iam": { + "type": "string" + } + }, + "type": "object" + }, + "ContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "FargatePlatformConfiguration": { + "$ref": "#/definitions/FargatePlatformConfiguration" + }, + "Image": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "JobRoleArn": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Memory": { + "type": "integer" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + }, + "Vcpus": { + "type": "integer" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Device": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "HostPath": { + "type": "string" + }, + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EcsProperties": { + "additionalProperties": false, + "properties": { + "TaskProperties": { + "items": { + "$ref": "#/definitions/EcsTaskProperties" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "TaskProperties" + ], + "type": "object" + }, + "EcsTaskProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "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": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EfsVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "AuthorizationConfig": { + "$ref": "#/definitions/AuthorizationConfig" + }, + "FileSystemId": { + "type": "string" + }, + "RootDirectory": { + "type": "string" + }, + "TransitEncryption": { + "type": "string" + }, + "TransitEncryptionPort": { + "type": "integer" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EksContainer": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Env": { + "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": { + "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": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Requests": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "type": "object" + }, + "EksContainerSecurityContext": { + "additionalProperties": false, + "properties": { + "AllowPrivilegeEscalation": { + "type": "boolean" + }, + "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" + }, + "EksProperties": { + "additionalProperties": false, + "properties": { + "PodProperties": { + "$ref": "#/definitions/PodProperties" + } + }, + "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" + }, + "FargatePlatformConfiguration": { + "additionalProperties": false, + "properties": { + "PlatformVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ImagePullSecret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "LinuxParameters": { + "additionalProperties": false, + "properties": { + "Devices": { + "items": { + "$ref": "#/definitions/Device" + }, + "type": "array", + "uniqueItems": false + }, + "InitProcessEnabled": { + "type": "boolean" + }, + "MaxSwap": { + "type": "integer" + }, + "SharedMemorySize": { + "type": "integer" + }, + "Swappiness": { + "type": "integer" + }, + "Tmpfs": { + "items": { + "$ref": "#/definitions/Tmpfs" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "SecretOptions": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "Metadata": { + "additionalProperties": false, + "properties": { + "Labels": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "type": "object" + }, + "MountPoints": { + "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": { + "items": { + "$ref": "#/definitions/NodeRangeProperty" + }, + "type": "array", + "uniqueItems": false + }, + "NumNodes": { + "type": "integer" + } + }, + "required": [ + "MainNode", + "NodeRangeProperties", + "NumNodes" + ], + "type": "object" + }, + "NodeRangeProperty": { + "additionalProperties": false, + "properties": { + "Container": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "TargetNodes": { + "type": "string" + } + }, + "required": [ + "TargetNodes" + ], + "type": "object" + }, + "PodProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "DnsPolicy": { + "type": "string" + }, + "HostNetwork": { + "type": "boolean" + }, + "ImagePullSecrets": { + "items": { + "$ref": "#/definitions/ImagePullSecret" + }, + "type": "array", + "uniqueItems": false + }, + "InitContainers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "Metadata": { + "$ref": "#/definitions/Metadata" + }, + "ServiceAccountName": { + "type": "string" + }, + "ShareProcessNamespace": { + "type": "boolean" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/EksVolume" + }, + "type": "array", + "uniqueItems": false + } + }, + "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": { + "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": [ + "ValueFrom", + "Name" + ], + "type": "object" + }, + "TaskContainerDependency": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "ContainerName": { + "type": "string" + } + }, + "required": [ + "Condition", + "ContainerName" + ], + "type": "object" + }, + "TaskContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "DependsOn": { + "items": { + "$ref": "#/definitions/TaskContainerDependency" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "Essential": { + "type": "boolean" + }, + "Image": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "Name": { + "type": "string" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Timeout": { + "additionalProperties": false, + "properties": { + "AttemptDurationSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tmpfs": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "MountOptions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Size": { + "type": "integer" + } + }, + "required": [ + "Size", + "ContainerPath" + ], + "type": "object" + }, + "Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "integer" + } + }, + "required": [ + "SoftLimit", + "HardLimit", + "Name" + ], + "type": "object" + }, + "Volumes": { + "additionalProperties": false, + "properties": { + "EfsVolumeConfiguration": { + "$ref": "#/definitions/EfsVolumeConfiguration" + }, + "Host": { + "$ref": "#/definitions/VolumesHost" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "VolumesHost": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContainerProperties": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "EksProperties": { + "$ref": "#/definitions/EksProperties" + }, + "Id": { + "type": "string" + }, + "JobDefinitionName": { + "type": "string" + }, + "NodeProperties": { + "$ref": "#/definitions/NodeProperties" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "PlatformCapabilities": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "PropagateTags": { + "type": "boolean" + }, + "RetryStrategy": { + "$ref": "#/definitions/RetryStrategy" + }, + "SchedulingPriority": { + "type": "integer" + }, + "Tags": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Timeout": { + "$ref": "#/definitions/Timeout" + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type" + ], + "typeName": "AWS::Batch::JobDefinition" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-fms-policy.json new file mode 100644 index 0000000000..8456d02fd6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-fms-policy.json @@ -0,0 +1,472 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkAclCommonPolicy": { + "additionalProperties": false, + "properties": { + "NetworkAclEntrySet": { + "$ref": "#/definitions/NetworkAclEntrySet" + } + }, + "required": [ + "NetworkAclEntrySet" + ], + "type": "object" + }, + "NetworkAclEntry": { + "additionalProperties": false, + "properties": { + "CidrBlock": { + "pattern": "^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))$", + "type": "string" + }, + "Egress": { + "type": "boolean" + }, + "IcmpTypeCode": { + "additionalProperties": false, + "properties": { + "Code": { + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "Type": { + "maximum": 255, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Code", + "Type" + ], + "type": "object" + }, + "Ipv6CidrBlock": { + "pattern": "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))(/(1[0-2]|[0-9]))?$", + "type": "string" + }, + "PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + }, + "To": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "From", + "To" + ], + "type": "object" + }, + "Protocol": { + "pattern": "^(tcp|udp|icmp|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", + "type": "string" + }, + "RuleAction": { + "enum": [ + "allow", + "deny" + ], + "type": "string" + } + }, + "required": [ + "Egress", + "Protocol", + "RuleAction" + ], + "type": "object" + }, + "NetworkAclEntryList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/NetworkAclEntry" + }, + "type": "array" + }, + "NetworkAclEntrySet": { + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "FirstEntries" + ] + }, + { + "required": [ + "LastEntries" + ] + } + ], + "properties": { + "FirstEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + }, + "ForceRemediateForFirstEntries": { + "type": "boolean" + }, + "ForceRemediateForLastEntries": { + "type": "boolean" + }, + "LastEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + } + }, + "required": [ + "ForceRemediateForFirstEntries", + "ForceRemediateForLastEntries" + ], + "type": "object" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + }, + { + "required": [ + "NetworkAclCommonPolicy" + ] + } + ], + "properties": { + "NetworkAclCommonPolicy": { + "$ref": "#/definitions/NetworkAclCommonPolicy" + }, + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL", + "NETWORK_ACL_COMMON" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-trigger.json new file mode 100644 index 0000000000..974dd89b9f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-trigger.json @@ -0,0 +1,172 @@ +{ + "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/ap_northeast_3/aws-kinesisfirehose-deliverystream.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-kinesisfirehose-deliverystream.json new file mode 100644 index 0000000000..37b2adaff0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-kinesisfirehose-deliverystream.json @@ -0,0 +1,1607 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeliveryStreamName", + "/properties/DeliveryStreamType", + "/properties/ElasticsearchDestinationConfiguration/VpcConfiguration", + "/properties/AmazonopensearchserviceDestinationConfiguration/VpcConfiguration", + "/properties/AmazonOpenSearchServerlessDestinationConfiguration/VpcConfiguration", + "/properties/KinesisStreamSourceConfiguration", + "/properties/MSKSourceConfiguration", + "/properties/SnowflakeDestinationConfiguration/SnowflakeVpcConfiguration" + ], + "definitions": { + "AmazonOpenSearchServerlessBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonOpenSearchServerlessDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonOpenSearchServerlessBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CollectionEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "relationshipRef": { + "propertyPath": "/properties/CollectionEndpoint", + "typeName": "AWS::OpenSearchServerless::Collection" + }, + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonOpenSearchServerlessRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonOpenSearchServerlessRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonopensearchserviceBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonopensearchserviceRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "Connectivity": { + "enum": [ + "PUBLIC", + "PRIVATE" + ], + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "Connectivity" + ], + "type": "object" + }, + "BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": { + "relationshipRef": { + "propertyPath": "/properties/LogGroupName", + "typeName": "AWS::Logs::LogGroup" + }, + "type": "string" + }, + "LogStreamName": { + "relationshipRef": { + "propertyPath": "/properties/LogStreamName", + "typeName": "AWS::Logs::LogStream" + }, + "type": "string" + } + }, + "type": "object" + }, + "CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableColumns": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableName": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/SchemaConfiguration" + } + }, + "type": "object" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + }, + "KeyType": { + "enum": [ + "AWS_OWNED_CMK", + "CUSTOMER_MANAGED_CMK" + ], + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/OpenXJsonSerDe" + } + }, + "type": "object" + }, + "DocumentIdOptions": { + "additionalProperties": false, + "properties": { + "DefaultDocumentIdFormat": { + "enum": [ + "FIREHOSE_DEFAULT", + "NO_DOCUMENT_ID" + ], + "type": "string" + } + }, + "required": [ + "DefaultDocumentIdFormat" + ], + "type": "object" + }, + "DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + } + }, + "type": "object" + }, + "ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/ElasticsearchBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Elasticsearch::Domain" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::OpenSearchService::Domain" + } + } + ], + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/ElasticsearchRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "ElasticsearchRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KMSEncryptionConfig": { + "$ref": "#/definitions/KMSEncryptionConfig" + }, + "NoEncryptionConfig": { + "enum": [ + "NoEncryption" + ], + "type": "string" + } + }, + "type": "object" + }, + "ExtendedS3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "CustomTimeZone": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "DataFormatConversionConfiguration": { + "$ref": "#/definitions/DataFormatConversionConfiguration" + }, + "DynamicPartitioningConfiguration": { + "$ref": "#/definitions/DynamicPartitioningConfiguration" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "FileExtension": { + "maxLength": 128, + "minLength": 0, + "pattern": "^$|\\.[0-9a-z!\\-_.*'()]+", + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "HiveJsonSerDe": { + "additionalProperties": false, + "properties": { + "TimestampFormats": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "HttpEndpointCommonAttribute": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeValue" + ], + "type": "object" + }, + "HttpEndpointConfiguration": { + "additionalProperties": false, + "properties": { + "AccessKey": { + "maxLength": 4096, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Url": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "HttpEndpointDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/HttpEndpointConfiguration" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RequestConfiguration": { + "$ref": "#/definitions/HttpEndpointRequestConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "EndpointConfiguration", + "S3Configuration" + ], + "type": "object" + }, + "HttpEndpointRequestConfiguration": { + "additionalProperties": false, + "properties": { + "CommonAttributes": { + "items": { + "$ref": "#/definitions/HttpEndpointCommonAttribute" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "ContentEncoding": { + "enum": [ + "NONE", + "GZIP" + ], + "type": "string" + } + }, + "type": "object" + }, + "InputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Deserializer": { + "$ref": "#/definitions/Deserializer" + } + }, + "type": "object" + }, + "KMSEncryptionConfig": { + "additionalProperties": false, + "properties": { + "AWSKMSKeyARN": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + } + }, + "required": [ + "AWSKMSKeyARN" + ], + "type": "object" + }, + "KinesisStreamSourceConfiguration": { + "additionalProperties": false, + "properties": { + "KinesisStreamARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "KinesisStreamARN" + ], + "type": "object" + }, + "MSKSourceConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AuthenticationConfiguration" + }, + "MSKClusterARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::MSK::Cluster" + }, + "type": "string" + }, + "TopicName": { + "maxLength": 255, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\._\\-]+", + "type": "string" + } + }, + "required": [ + "MSKClusterARN", + "TopicName", + "AuthenticationConfiguration" + ], + "type": "object" + }, + "OpenXJsonSerDe": { + "additionalProperties": false, + "properties": { + "CaseInsensitive": { + "type": "boolean" + }, + "ColumnToJsonKeyMappings": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ConvertDotsInJsonKeysToUnderscores": { + "type": "boolean" + } + }, + "type": "object" + }, + "OrcSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "BloomFilterColumns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BloomFilterFalsePositiveProbability": { + "type": "number" + }, + "Compression": { + "type": "string" + }, + "DictionaryKeyThreshold": { + "type": "number" + }, + "EnablePadding": { + "type": "boolean" + }, + "FormatVersion": { + "type": "string" + }, + "PaddingTolerance": { + "type": "number" + }, + "RowIndexStride": { + "type": "integer" + }, + "StripeSizeBytes": { + "type": "integer" + } + }, + "type": "object" + }, + "OutputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Serializer": { + "$ref": "#/definitions/Serializer" + } + }, + "type": "object" + }, + "ParquetSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "Compression": { + "type": "string" + }, + "EnableDictionaryCompression": { + "type": "boolean" + }, + "MaxPaddingBytes": { + "type": "integer" + }, + "PageSizeBytes": { + "type": "integer" + }, + "WriterVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Processors": { + "items": { + "$ref": "#/definitions/Processor" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Processor": { + "additionalProperties": false, + "properties": { + "Parameters": { + "items": { + "$ref": "#/definitions/ProcessorParameter" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "enum": [ + "RecordDeAggregation", + "Decompression", + "CloudWatchLogProcessing", + "Lambda", + "MetadataExtraction", + "AppendDelimiterToRecord" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ProcessorParameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Lambda::Function" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Lambda::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "RedshiftDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterJDBCURL": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "CopyCommand": { + "$ref": "#/definitions/CopyCommand" + }, + "Password": { + "maxLength": 512, + "minLength": 6, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RedshiftRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "Username": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "S3Configuration", + "ClusterJDBCURL", + "CopyCommand", + "RoleARN" + ], + "type": "object" + }, + "RedshiftRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "RetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "SchemaConfiguration": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Database" + }, + "type": "string" + }, + "Region": { + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "TableName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Table" + }, + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "SecretsManagerConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecretARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::SecretsManager::Secret" + }, + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Serializer": { + "additionalProperties": false, + "properties": { + "OrcSerDe": { + "$ref": "#/definitions/OrcSerDe" + }, + "ParquetSerDe": { + "$ref": "#/definitions/ParquetSerDe" + } + }, + "type": "object" + }, + "SnowflakeDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "AccountUrl": { + "maxLength": 2048, + "minLength": 24, + "pattern": ".+?\\.snowflakecomputing\\.com", + "type": "string" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ContentColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "DataLoadingOption": { + "enum": [ + "JSON_MAPPING", + "VARIANT_CONTENT_MAPPING", + "VARIANT_CONTENT_AND_METADATA_MAPPING" + ], + "type": "string" + }, + "Database": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyPassphrase": { + "maxLength": 255, + "minLength": 7, + "type": "string" + }, + "MetaDataColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "PrivateKey": { + "maxLength": 4096, + "minLength": 256, + "pattern": "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$", + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SnowflakeRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDataOnly", + "AllData" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "Schema": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "SnowflakeRoleConfiguration": { + "$ref": "#/definitions/SnowflakeRoleConfiguration" + }, + "SnowflakeVpcConfiguration": { + "$ref": "#/definitions/SnowflakeVpcConfiguration" + }, + "Table": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "User": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "AccountUrl", + "Database", + "Schema", + "Table", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "SnowflakeRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "SnowflakeRoleConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SnowflakeRole": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "SnowflakeVpcConfiguration": { + "additionalProperties": false, + "properties": { + "PrivateLinkVpceId": { + "maxLength": 255, + "minLength": 47, + "pattern": "([a-zA-Z0-9\\-\\_]+\\.){2,3}vpce\\.[a-zA-Z0-9\\-]*\\.vpce-svc\\-[a-zA-Z0-9\\-]{17}$", + "type": "string" + } + }, + "required": [ + "PrivateLinkVpceId" + ], + "type": "object" + }, + "SplunkBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "SplunkDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/SplunkBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "HECAcknowledgmentTimeoutInSeconds": { + "maximum": 600, + "minimum": 180, + "type": "integer" + }, + "HECEndpoint": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "HECEndpointType": { + "enum": [ + "Raw", + "Event" + ], + "type": "string" + }, + "HECToken": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SplunkRetryOptions" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "HECEndpoint", + "S3Configuration", + "HECEndpointType" + ], + "type": "object" + }, + "SplunkRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "VpcConfiguration": { + "additionalProperties": false, + "properties": { + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/GroupId", + "typeName": "AWS::EC2::SecurityGroup" + }, + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::Subnet" + }, + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "RoleARN", + "SubnetIds", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "firehose:CreateDeliveryStream", + "firehose:DescribeDeliveryStream", + "iam:GetRole", + "iam:PassRole", + "kms:CreateGrant", + "kms:DescribeKey" + ] + }, + "delete": { + "permissions": [ + "firehose:DeleteDeliveryStream", + "firehose:DescribeDeliveryStream", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + }, + "list": { + "permissions": [ + "firehose:ListDeliveryStreams" + ] + }, + "read": { + "permissions": [ + "firehose:DescribeDeliveryStream", + "firehose:ListTagsForDeliveryStream" + ] + }, + "update": { + "permissions": [ + "firehose:UpdateDestination", + "firehose:DescribeDeliveryStream", + "firehose:StartDeliveryStreamEncryption", + "firehose:StopDeliveryStreamEncryption", + "firehose:ListTagsForDeliveryStream", + "firehose:TagDeliveryStream", + "firehose:UntagDeliveryStream", + "kms:CreateGrant", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + } + }, + "primaryIdentifier": [ + "/properties/DeliveryStreamName" + ], + "properties": { + "AmazonOpenSearchServerlessDestinationConfiguration": { + "$ref": "#/definitions/AmazonOpenSearchServerlessDestinationConfiguration" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "$ref": "#/definitions/AmazonopensearchserviceDestinationConfiguration" + }, + "Arn": { + "type": "string" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/DeliveryStreamEncryptionConfigurationInput" + }, + "DeliveryStreamName": { + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9._-]+", + "type": "string" + }, + "DeliveryStreamType": { + "enum": [ + "DirectPut", + "KinesisStreamAsSource", + "MSKAsSource" + ], + "type": "string" + }, + "ElasticsearchDestinationConfiguration": { + "$ref": "#/definitions/ElasticsearchDestinationConfiguration" + }, + "ExtendedS3DestinationConfiguration": { + "$ref": "#/definitions/ExtendedS3DestinationConfiguration" + }, + "HttpEndpointDestinationConfiguration": { + "$ref": "#/definitions/HttpEndpointDestinationConfiguration" + }, + "KinesisStreamSourceConfiguration": { + "$ref": "#/definitions/KinesisStreamSourceConfiguration" + }, + "MSKSourceConfiguration": { + "$ref": "#/definitions/MSKSourceConfiguration" + }, + "RedshiftDestinationConfiguration": { + "$ref": "#/definitions/RedshiftDestinationConfiguration" + }, + "S3DestinationConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SnowflakeDestinationConfiguration": { + "$ref": "#/definitions/SnowflakeDestinationConfiguration" + }, + "SplunkDestinationConfiguration": { + "$ref": "#/definitions/SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "typeName": "AWS::KinesisFirehose::DeliveryStream" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-rds-integration.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-rds-integration.json new file mode 100644 index 0000000000..8bb00c0dfe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-rds-integration.json @@ -0,0 +1,154 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SourceArn", + "/properties/TargetArn", + "/properties/KMSKeyId", + "/properties/AdditionalEncryptionContext" + ], + "definitions": { + "EncryptionContextMap": { + "additionalProperties": false, + "patternProperties": { + "^[\\s\\S]*$": { + "maxLength": 131072, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "handlers": { + "create": { + "permissions": [ + "rds:CreateIntegration", + "rds:DescribeIntegrations", + "rds:AddTagsToResource", + "kms:CreateGrant", + "kms:DescribeKey", + "redshift:CreateInboundIntegration" + ] + }, + "delete": { + "permissions": [ + "rds:DeleteIntegration", + "rds:DescribeIntegrations" + ] + }, + "list": { + "permissions": [ + "rds:DescribeIntegrations" + ] + }, + "read": { + "permissions": [ + "rds:DescribeIntegrations" + ] + }, + "update": { + "permissions": [ + "rds:DescribeIntegrations", + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource", + "rds:ModifyIntegration" + ] + } + }, + "primaryIdentifier": [ + "/properties/IntegrationArn" + ], + "properties": { + "AdditionalEncryptionContext": { + "$ref": "#/definitions/EncryptionContextMap" + }, + "CreateTime": { + "type": "string" + }, + "DataFilter": { + "maxLength": 25600, + "minLength": 1, + "pattern": "[a-zA-Z0-9_ \"\\\\\\-$,*.:?+\\/]*", + "type": "string" + }, + "Description": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + }, + "IntegrationArn": { + "type": "string" + }, + "IntegrationName": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "KMSKeyId": { + "type": "string" + }, + "SourceArn": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "TargetArn": { + "type": "string" + } + }, + "propertyTransform": { + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/SourceArn": "$lowercase(SourceArn)" + }, + "readOnlyProperties": [ + "/properties/IntegrationArn", + "/properties/CreateTime" + ], + "required": [ + "SourceArn", + "TargetArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-sagemaker-app.json new file mode 100644 index 0000000000..d565ffb835 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-sagemaker-app.json @@ -0,0 +1,210 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/Tags", + "/properties/ResourceSpec" + ], + "definitions": { + "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" + }, + "SageMakerImageArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:DescribeApp" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DescribeApp" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListApps" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeApp", + "sagemaker:DescribeApp" + ] + } + }, + "primaryIdentifier": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName" + ], + "properties": { + "AppArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app/.*", + "type": "string" + }, + "AppName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "RStudioServerPro", + "RSessionGateway", + "Canvas" + ], + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "ResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/AppArn" + ], + "required": [ + "AppName", + "AppType", + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::App", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-sagemaker-domain.json new file mode 100644 index 0000000000..5cd4ea45fa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-sagemaker-domain.json @@ -0,0 +1,831 @@ +{ + "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" + } + }, + "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" + } + }, + "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_3/aws-sagemaker-model.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-sagemaker-model.json new file mode 100644 index 0000000000..ef768bc0ed --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-sagemaker-model.json @@ -0,0 +1,235 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ExecutionRoleArn", + "/properties/EnableNetworkIsolation", + "/properties/InferenceExecutionConfig", + "/properties/PrimaryContainer", + "/properties/ModelName", + "/properties/VpcConfig", + "/properties/Containers" + ], + "definitions": { + "ContainerDefinition": { + "additionalProperties": false, + "properties": { + "ContainerHostname": { + "type": "string" + }, + "Environment": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Image": { + "type": "string" + }, + "ImageConfig": { + "$ref": "#/definitions/ImageConfig" + }, + "InferenceSpecificationName": { + "type": "string" + }, + "Mode": { + "type": "string" + }, + "ModelDataSource": { + "$ref": "#/definitions/ModelDataSource" + }, + "ModelDataUrl": { + "type": "string" + }, + "ModelPackageName": { + "type": "string" + }, + "MultiModelConfig": { + "$ref": "#/definitions/MultiModelConfig" + } + }, + "type": "object" + }, + "ImageConfig": { + "additionalProperties": false, + "properties": { + "RepositoryAccessMode": { + "type": "string" + }, + "RepositoryAuthConfig": { + "$ref": "#/definitions/RepositoryAuthConfig" + } + }, + "required": [ + "RepositoryAccessMode" + ], + "type": "object" + }, + "InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "ModelAccessConfig": { + "additionalProperties": false, + "properties": { + "AcceptEula": { + "type": "boolean" + } + }, + "required": [ + "AcceptEula" + ], + "type": "object" + }, + "ModelDataSource": { + "additionalProperties": false, + "properties": { + "S3DataSource": { + "$ref": "#/definitions/S3DataSource" + } + }, + "required": [ + "S3DataSource" + ], + "type": "object" + }, + "MultiModelConfig": { + "additionalProperties": false, + "properties": { + "ModelCacheSetting": { + "type": "string" + } + }, + "type": "object" + }, + "RepositoryAuthConfig": { + "additionalProperties": false, + "properties": { + "RepositoryCredentialsProviderArn": { + "type": "string" + } + }, + "required": [ + "RepositoryCredentialsProviderArn" + ], + "type": "object" + }, + "S3DataSource": { + "additionalProperties": false, + "properties": { + "CompressionType": { + "type": "string" + }, + "ModelAccessConfig": { + "$ref": "#/definitions/ModelAccessConfig" + }, + "S3DataType": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "S3Uri", + "S3DataType", + "CompressionType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Subnets", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/ContainerDefinition" + }, + "type": "array", + "uniqueItems": false + }, + "EnableNetworkIsolation": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/InferenceExecutionConfig" + }, + "ModelName": { + "type": "string" + }, + "PrimaryContainer": { + "$ref": "#/definitions/ContainerDefinition" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcConfig": { + "$ref": "#/definitions/VpcConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SageMaker::Model" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-sagemaker-space.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-sagemaker-space.json new file mode 100644 index 0000000000..1ad92e7aa4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-sagemaker-space.json @@ -0,0 +1,436 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/SpaceName", + "/properties/SpaceSharingSettings", + "/properties/OwnershipSettings" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "TensorBoard", + "RStudioServerPro", + "RSessionGateway", + "JupyterLab", + "CodeEditor" + ], + "type": "string" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystem": { + "additionalProperties": false, + "properties": { + "EFSFileSystem": { + "$ref": "#/definitions/EFSFileSystem" + } + }, + "type": "object" + }, + "CustomFileSystems": { + "items": { + "$ref": "#/definitions/CustomFileSystem" + }, + "maxItems": 1, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "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" + }, + "EFSFileSystem": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EbsStorageSettings": { + "additionalProperties": false, + "properties": { + "EbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "EbsVolumeSizeInGb" + ], + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "OwnershipSettings": { + "additionalProperties": false, + "properties": { + "OwnerUserProfileName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "required": [ + "OwnerUserProfileName" + ], + "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" + }, + "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" + }, + "SpaceCodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "SpaceJupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "SpaceSettings": { + "additionalProperties": false, + "properties": { + "AppType": { + "$ref": "#/definitions/AppType" + }, + "CodeEditorAppSettings": { + "$ref": "#/definitions/SpaceCodeEditorAppSettings" + }, + "CustomFileSystems": { + "$ref": "#/definitions/CustomFileSystems" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/SpaceJupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/SpaceStorageSettings" + } + }, + "type": "object" + }, + "SpaceSharingSettings": { + "additionalProperties": false, + "properties": { + "SharingType": { + "enum": [ + "Private", + "Shared" + ], + "type": "string" + } + }, + "required": [ + "SharingType" + ], + "type": "object" + }, + "SpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "EbsStorageSettings": { + "$ref": "#/definitions/EbsStorageSettings" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateSpace", + "sagemaker:DescribeSpace" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteSpace", + "sagemaker:DescribeSpace" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListSpaces" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeSpace" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateSpace", + "sagemaker:DescribeSpace" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId", + "/properties/SpaceName" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "OwnershipSettings": { + "$ref": "#/definitions/OwnershipSettings" + }, + "SpaceArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:space/.*", + "type": "string" + }, + "SpaceDisplayName": { + "maxLength": 64, + "pattern": "^(?!\\s*$).+", + "type": "string" + }, + "SpaceName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SpaceSettings": { + "$ref": "#/definitions/SpaceSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + }, + "SpaceSharingSettings": { + "$ref": "#/definitions/SpaceSharingSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/SpaceArn", + "/properties/Url" + ], + "required": [ + "DomainId", + "SpaceName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SageMaker::Space", + "writeOnlyProperties": [ + "/properties/SpaceSettings", + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..c2c0daf9fe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-sagemaker-userprofile.json @@ -0,0 +1,592 @@ +{ + "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" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "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" + }, + "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/__init__.py b/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py index 13a3009f7b..19891e764e 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py @@ -131,9 +131,14 @@ "AWS::Bedrock::Agent", "AWS::Bedrock::AgentAlias", "AWS::Bedrock::DataSource", + "AWS::Bedrock::Flow", + "AWS::Bedrock::FlowAlias", + "AWS::Bedrock::FlowVersion", "AWS::Bedrock::Guardrail", "AWS::Bedrock::GuardrailVersion", "AWS::Bedrock::KnowledgeBase", + "AWS::Bedrock::Prompt", + "AWS::Bedrock::PromptVersion", "AWS::Budgets::Budget", "AWS::Budgets::BudgetsAction", "AWS::CDK::Metadata", @@ -1217,7 +1222,6 @@ "aws-aps-rulegroupsnamespace.json", "aws-aps-scraper.json", "aws-aps-workspace.json", - "aws-arczonalshift-zonalautoshiftconfiguration.json", "aws-athena-datacatalog.json", "aws-athena-namedquery.json", "aws-athena-preparedstatement.json", @@ -1239,15 +1243,19 @@ "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", @@ -1575,7 +1583,6 @@ "aws-fis-experimenttemplate.json", "aws-fis-targetaccountconfiguration.json", "aws-fms-notificationchannel.json", - "aws-fms-policy.json", "aws-fms-resourceset.json", "aws-forecast-dataset.json", "aws-forecast-datasetgroup.json", @@ -1615,7 +1622,6 @@ "aws-glue-securityconfiguration.json", "aws-glue-table.json", "aws-glue-tableoptimizer.json", - "aws-glue-trigger.json", "aws-glue-workflow.json", "aws-greengrass-connectordefinition.json", "aws-greengrass-connectordefinitionversion.json", @@ -1746,7 +1752,6 @@ "aws-kinesisanalytics-applicationoutput.json", "aws-kinesisanalyticsv2-application.json", "aws-kinesisanalyticsv2-applicationoutput.json", - "aws-kinesisfirehose-deliverystream.json", "aws-kinesisvideo-signalingchannel.json", "aws-kinesisvideo-stream.json", "aws-kms-alias.json", @@ -1893,6 +1898,7 @@ "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", @@ -1953,7 +1959,6 @@ "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", "aws-rds-globalcluster.json", - "aws-rds-integration.json", "aws-rds-optiongroup.json", "aws-redshift-cluster.json", "aws-redshift-clusterparametergroup.json", @@ -2020,11 +2025,9 @@ "aws-s3outposts-bucket.json", "aws-s3outposts-bucketpolicy.json", "aws-s3outposts-endpoint.json", - "aws-sagemaker-app.json", "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", @@ -2033,7 +2036,6 @@ "aws-sagemaker-inferencecomponent.json", "aws-sagemaker-inferenceexperiment.json", "aws-sagemaker-mlflowtrackingserver.json", - "aws-sagemaker-model.json", "aws-sagemaker-modelbiasjobdefinition.json", "aws-sagemaker-modelcard.json", "aws-sagemaker-modelexplainabilityjobdefinition.json", @@ -2045,8 +2047,6 @@ "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-sagemaker-pipeline.json", "aws-sagemaker-project.json", - "aws-sagemaker-space.json", - "aws-sagemaker-userprofile.json", "aws-sagemaker-workteam.json", "aws-scheduler-schedule.json", "aws-scheduler-schedulegroup.json", @@ -2135,6 +2135,8 @@ "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", diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-arczonalshift-zonalautoshiftconfiguration.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-arczonalshift-zonalautoshiftconfiguration.json new file mode 100644 index 0000000000..3bdd4887b2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-arczonalshift-zonalautoshiftconfiguration.json @@ -0,0 +1,169 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "allOf": [ + { + "required": [ + "ResourceIdentifier" + ] + } + ], + "anyOf": [ + { + "required": [ + "ZonalAutoshiftStatus" + ] + }, + { + "required": [ + "PracticeRunConfiguration" + ] + } + ] + } + ], + "createOnlyProperties": [ + "/properties/ResourceIdentifier" + ], + "definitions": { + "ControlCondition": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "maxLength": 1024, + "minLength": 8, + "pattern": "^arn:.*$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/ControlConditionType" + } + }, + "required": [ + "AlarmIdentifier", + "Type" + ], + "type": "object" + }, + "ControlConditionType": { + "enum": [ + "CLOUDWATCH" + ], + "type": "string" + }, + "PracticeRunConfiguration": { + "additionalProperties": false, + "properties": { + "BlockedDates": { + "insertionOrder": false, + "items": { + "maxLength": 10, + "minLength": 10, + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockedWindows": { + "insertionOrder": false, + "items": { + "maxLength": 19, + "minLength": 19, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}-(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockingAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "OutcomeAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "OutcomeAlarms" + ], + "type": "object" + }, + "ZonalAutoshiftStatus": { + "enum": [ + "ENABLED" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "arc-zonal-shift:CreatePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "arc-zonal-shift:DeletePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration" + ] + }, + "list": { + "permissions": [ + "arc-zonal-shift:ListManagedResources" + ] + }, + "read": { + "permissions": [ + "arc-zonal-shift:GetManagedResource" + ] + }, + "update": { + "permissions": [ + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdatePracticeRunConfiguration", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms" + ] + } + }, + "primaryIdentifier": [ + "/properties/ResourceIdentifier" + ], + "properties": { + "PracticeRunConfiguration": { + "$ref": "#/definitions/PracticeRunConfiguration" + }, + "ResourceIdentifier": { + "maxLength": 1024, + "minLength": 8, + "type": "string" + }, + "ZonalAutoshiftStatus": { + "$ref": "#/definitions/ZonalAutoshiftStatus" + } + }, + "tagging": { + "taggable": false + }, + "typeName": "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-batch-jobdefinition.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-batch-jobdefinition.json new file mode 100644 index 0000000000..2d82031cd0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-batch-jobdefinition.json @@ -0,0 +1,992 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tags", + "/properties/JobDefinitionName" + ], + "definitions": { + "AuthorizationConfig": { + "additionalProperties": false, + "properties": { + "AccessPointId": { + "type": "string" + }, + "Iam": { + "type": "string" + } + }, + "type": "object" + }, + "ContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "FargatePlatformConfiguration": { + "$ref": "#/definitions/FargatePlatformConfiguration" + }, + "Image": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "JobRoleArn": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Memory": { + "type": "integer" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + }, + "Vcpus": { + "type": "integer" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Device": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "HostPath": { + "type": "string" + }, + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EcsProperties": { + "additionalProperties": false, + "properties": { + "TaskProperties": { + "items": { + "$ref": "#/definitions/EcsTaskProperties" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "TaskProperties" + ], + "type": "object" + }, + "EcsTaskProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "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": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EfsVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "AuthorizationConfig": { + "$ref": "#/definitions/AuthorizationConfig" + }, + "FileSystemId": { + "type": "string" + }, + "RootDirectory": { + "type": "string" + }, + "TransitEncryption": { + "type": "string" + }, + "TransitEncryptionPort": { + "type": "integer" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EksContainer": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Env": { + "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": { + "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": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Requests": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "type": "object" + }, + "EksContainerSecurityContext": { + "additionalProperties": false, + "properties": { + "AllowPrivilegeEscalation": { + "type": "boolean" + }, + "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" + }, + "EksProperties": { + "additionalProperties": false, + "properties": { + "PodProperties": { + "$ref": "#/definitions/PodProperties" + } + }, + "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" + }, + "FargatePlatformConfiguration": { + "additionalProperties": false, + "properties": { + "PlatformVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ImagePullSecret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "LinuxParameters": { + "additionalProperties": false, + "properties": { + "Devices": { + "items": { + "$ref": "#/definitions/Device" + }, + "type": "array", + "uniqueItems": false + }, + "InitProcessEnabled": { + "type": "boolean" + }, + "MaxSwap": { + "type": "integer" + }, + "SharedMemorySize": { + "type": "integer" + }, + "Swappiness": { + "type": "integer" + }, + "Tmpfs": { + "items": { + "$ref": "#/definitions/Tmpfs" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "SecretOptions": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "Metadata": { + "additionalProperties": false, + "properties": { + "Labels": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "type": "object" + }, + "MountPoints": { + "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": { + "items": { + "$ref": "#/definitions/NodeRangeProperty" + }, + "type": "array", + "uniqueItems": false + }, + "NumNodes": { + "type": "integer" + } + }, + "required": [ + "MainNode", + "NodeRangeProperties", + "NumNodes" + ], + "type": "object" + }, + "NodeRangeProperty": { + "additionalProperties": false, + "properties": { + "Container": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "TargetNodes": { + "type": "string" + } + }, + "required": [ + "TargetNodes" + ], + "type": "object" + }, + "PodProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "DnsPolicy": { + "type": "string" + }, + "HostNetwork": { + "type": "boolean" + }, + "ImagePullSecrets": { + "items": { + "$ref": "#/definitions/ImagePullSecret" + }, + "type": "array", + "uniqueItems": false + }, + "InitContainers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "Metadata": { + "$ref": "#/definitions/Metadata" + }, + "ServiceAccountName": { + "type": "string" + }, + "ShareProcessNamespace": { + "type": "boolean" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/EksVolume" + }, + "type": "array", + "uniqueItems": false + } + }, + "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": { + "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": [ + "ValueFrom", + "Name" + ], + "type": "object" + }, + "TaskContainerDependency": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "ContainerName": { + "type": "string" + } + }, + "required": [ + "Condition", + "ContainerName" + ], + "type": "object" + }, + "TaskContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "DependsOn": { + "items": { + "$ref": "#/definitions/TaskContainerDependency" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "Essential": { + "type": "boolean" + }, + "Image": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "Name": { + "type": "string" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Timeout": { + "additionalProperties": false, + "properties": { + "AttemptDurationSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tmpfs": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "MountOptions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Size": { + "type": "integer" + } + }, + "required": [ + "Size", + "ContainerPath" + ], + "type": "object" + }, + "Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "integer" + } + }, + "required": [ + "SoftLimit", + "HardLimit", + "Name" + ], + "type": "object" + }, + "Volumes": { + "additionalProperties": false, + "properties": { + "EfsVolumeConfiguration": { + "$ref": "#/definitions/EfsVolumeConfiguration" + }, + "Host": { + "$ref": "#/definitions/VolumesHost" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "VolumesHost": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContainerProperties": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "EksProperties": { + "$ref": "#/definitions/EksProperties" + }, + "Id": { + "type": "string" + }, + "JobDefinitionName": { + "type": "string" + }, + "NodeProperties": { + "$ref": "#/definitions/NodeProperties" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "PlatformCapabilities": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "PropagateTags": { + "type": "boolean" + }, + "RetryStrategy": { + "$ref": "#/definitions/RetryStrategy" + }, + "SchedulingPriority": { + "type": "integer" + }, + "Tags": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Timeout": { + "$ref": "#/definitions/Timeout" + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type" + ], + "typeName": "AWS::Batch::JobDefinition" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-fms-policy.json new file mode 100644 index 0000000000..8456d02fd6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-fms-policy.json @@ -0,0 +1,472 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkAclCommonPolicy": { + "additionalProperties": false, + "properties": { + "NetworkAclEntrySet": { + "$ref": "#/definitions/NetworkAclEntrySet" + } + }, + "required": [ + "NetworkAclEntrySet" + ], + "type": "object" + }, + "NetworkAclEntry": { + "additionalProperties": false, + "properties": { + "CidrBlock": { + "pattern": "^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))$", + "type": "string" + }, + "Egress": { + "type": "boolean" + }, + "IcmpTypeCode": { + "additionalProperties": false, + "properties": { + "Code": { + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "Type": { + "maximum": 255, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Code", + "Type" + ], + "type": "object" + }, + "Ipv6CidrBlock": { + "pattern": "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))(/(1[0-2]|[0-9]))?$", + "type": "string" + }, + "PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + }, + "To": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "From", + "To" + ], + "type": "object" + }, + "Protocol": { + "pattern": "^(tcp|udp|icmp|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", + "type": "string" + }, + "RuleAction": { + "enum": [ + "allow", + "deny" + ], + "type": "string" + } + }, + "required": [ + "Egress", + "Protocol", + "RuleAction" + ], + "type": "object" + }, + "NetworkAclEntryList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/NetworkAclEntry" + }, + "type": "array" + }, + "NetworkAclEntrySet": { + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "FirstEntries" + ] + }, + { + "required": [ + "LastEntries" + ] + } + ], + "properties": { + "FirstEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + }, + "ForceRemediateForFirstEntries": { + "type": "boolean" + }, + "ForceRemediateForLastEntries": { + "type": "boolean" + }, + "LastEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + } + }, + "required": [ + "ForceRemediateForFirstEntries", + "ForceRemediateForLastEntries" + ], + "type": "object" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + }, + { + "required": [ + "NetworkAclCommonPolicy" + ] + } + ], + "properties": { + "NetworkAclCommonPolicy": { + "$ref": "#/definitions/NetworkAclCommonPolicy" + }, + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL", + "NETWORK_ACL_COMMON" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-trigger.json new file mode 100644 index 0000000000..974dd89b9f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-trigger.json @@ -0,0 +1,172 @@ +{ + "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/ap_south_1/aws-kinesisfirehose-deliverystream.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-kinesisfirehose-deliverystream.json new file mode 100644 index 0000000000..37b2adaff0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-kinesisfirehose-deliverystream.json @@ -0,0 +1,1607 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeliveryStreamName", + "/properties/DeliveryStreamType", + "/properties/ElasticsearchDestinationConfiguration/VpcConfiguration", + "/properties/AmazonopensearchserviceDestinationConfiguration/VpcConfiguration", + "/properties/AmazonOpenSearchServerlessDestinationConfiguration/VpcConfiguration", + "/properties/KinesisStreamSourceConfiguration", + "/properties/MSKSourceConfiguration", + "/properties/SnowflakeDestinationConfiguration/SnowflakeVpcConfiguration" + ], + "definitions": { + "AmazonOpenSearchServerlessBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonOpenSearchServerlessDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonOpenSearchServerlessBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CollectionEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "relationshipRef": { + "propertyPath": "/properties/CollectionEndpoint", + "typeName": "AWS::OpenSearchServerless::Collection" + }, + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonOpenSearchServerlessRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonOpenSearchServerlessRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonopensearchserviceBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonopensearchserviceRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "Connectivity": { + "enum": [ + "PUBLIC", + "PRIVATE" + ], + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "Connectivity" + ], + "type": "object" + }, + "BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": { + "relationshipRef": { + "propertyPath": "/properties/LogGroupName", + "typeName": "AWS::Logs::LogGroup" + }, + "type": "string" + }, + "LogStreamName": { + "relationshipRef": { + "propertyPath": "/properties/LogStreamName", + "typeName": "AWS::Logs::LogStream" + }, + "type": "string" + } + }, + "type": "object" + }, + "CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableColumns": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableName": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/SchemaConfiguration" + } + }, + "type": "object" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + }, + "KeyType": { + "enum": [ + "AWS_OWNED_CMK", + "CUSTOMER_MANAGED_CMK" + ], + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/OpenXJsonSerDe" + } + }, + "type": "object" + }, + "DocumentIdOptions": { + "additionalProperties": false, + "properties": { + "DefaultDocumentIdFormat": { + "enum": [ + "FIREHOSE_DEFAULT", + "NO_DOCUMENT_ID" + ], + "type": "string" + } + }, + "required": [ + "DefaultDocumentIdFormat" + ], + "type": "object" + }, + "DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + } + }, + "type": "object" + }, + "ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/ElasticsearchBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Elasticsearch::Domain" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::OpenSearchService::Domain" + } + } + ], + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/ElasticsearchRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "ElasticsearchRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KMSEncryptionConfig": { + "$ref": "#/definitions/KMSEncryptionConfig" + }, + "NoEncryptionConfig": { + "enum": [ + "NoEncryption" + ], + "type": "string" + } + }, + "type": "object" + }, + "ExtendedS3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "CustomTimeZone": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "DataFormatConversionConfiguration": { + "$ref": "#/definitions/DataFormatConversionConfiguration" + }, + "DynamicPartitioningConfiguration": { + "$ref": "#/definitions/DynamicPartitioningConfiguration" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "FileExtension": { + "maxLength": 128, + "minLength": 0, + "pattern": "^$|\\.[0-9a-z!\\-_.*'()]+", + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "HiveJsonSerDe": { + "additionalProperties": false, + "properties": { + "TimestampFormats": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "HttpEndpointCommonAttribute": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeValue" + ], + "type": "object" + }, + "HttpEndpointConfiguration": { + "additionalProperties": false, + "properties": { + "AccessKey": { + "maxLength": 4096, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Url": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "HttpEndpointDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/HttpEndpointConfiguration" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RequestConfiguration": { + "$ref": "#/definitions/HttpEndpointRequestConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "EndpointConfiguration", + "S3Configuration" + ], + "type": "object" + }, + "HttpEndpointRequestConfiguration": { + "additionalProperties": false, + "properties": { + "CommonAttributes": { + "items": { + "$ref": "#/definitions/HttpEndpointCommonAttribute" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "ContentEncoding": { + "enum": [ + "NONE", + "GZIP" + ], + "type": "string" + } + }, + "type": "object" + }, + "InputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Deserializer": { + "$ref": "#/definitions/Deserializer" + } + }, + "type": "object" + }, + "KMSEncryptionConfig": { + "additionalProperties": false, + "properties": { + "AWSKMSKeyARN": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + } + }, + "required": [ + "AWSKMSKeyARN" + ], + "type": "object" + }, + "KinesisStreamSourceConfiguration": { + "additionalProperties": false, + "properties": { + "KinesisStreamARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "KinesisStreamARN" + ], + "type": "object" + }, + "MSKSourceConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AuthenticationConfiguration" + }, + "MSKClusterARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::MSK::Cluster" + }, + "type": "string" + }, + "TopicName": { + "maxLength": 255, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\._\\-]+", + "type": "string" + } + }, + "required": [ + "MSKClusterARN", + "TopicName", + "AuthenticationConfiguration" + ], + "type": "object" + }, + "OpenXJsonSerDe": { + "additionalProperties": false, + "properties": { + "CaseInsensitive": { + "type": "boolean" + }, + "ColumnToJsonKeyMappings": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ConvertDotsInJsonKeysToUnderscores": { + "type": "boolean" + } + }, + "type": "object" + }, + "OrcSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "BloomFilterColumns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BloomFilterFalsePositiveProbability": { + "type": "number" + }, + "Compression": { + "type": "string" + }, + "DictionaryKeyThreshold": { + "type": "number" + }, + "EnablePadding": { + "type": "boolean" + }, + "FormatVersion": { + "type": "string" + }, + "PaddingTolerance": { + "type": "number" + }, + "RowIndexStride": { + "type": "integer" + }, + "StripeSizeBytes": { + "type": "integer" + } + }, + "type": "object" + }, + "OutputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Serializer": { + "$ref": "#/definitions/Serializer" + } + }, + "type": "object" + }, + "ParquetSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "Compression": { + "type": "string" + }, + "EnableDictionaryCompression": { + "type": "boolean" + }, + "MaxPaddingBytes": { + "type": "integer" + }, + "PageSizeBytes": { + "type": "integer" + }, + "WriterVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Processors": { + "items": { + "$ref": "#/definitions/Processor" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Processor": { + "additionalProperties": false, + "properties": { + "Parameters": { + "items": { + "$ref": "#/definitions/ProcessorParameter" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "enum": [ + "RecordDeAggregation", + "Decompression", + "CloudWatchLogProcessing", + "Lambda", + "MetadataExtraction", + "AppendDelimiterToRecord" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ProcessorParameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Lambda::Function" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Lambda::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "RedshiftDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterJDBCURL": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "CopyCommand": { + "$ref": "#/definitions/CopyCommand" + }, + "Password": { + "maxLength": 512, + "minLength": 6, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RedshiftRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "Username": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "S3Configuration", + "ClusterJDBCURL", + "CopyCommand", + "RoleARN" + ], + "type": "object" + }, + "RedshiftRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "RetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "SchemaConfiguration": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Database" + }, + "type": "string" + }, + "Region": { + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "TableName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Table" + }, + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "SecretsManagerConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecretARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::SecretsManager::Secret" + }, + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Serializer": { + "additionalProperties": false, + "properties": { + "OrcSerDe": { + "$ref": "#/definitions/OrcSerDe" + }, + "ParquetSerDe": { + "$ref": "#/definitions/ParquetSerDe" + } + }, + "type": "object" + }, + "SnowflakeDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "AccountUrl": { + "maxLength": 2048, + "minLength": 24, + "pattern": ".+?\\.snowflakecomputing\\.com", + "type": "string" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ContentColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "DataLoadingOption": { + "enum": [ + "JSON_MAPPING", + "VARIANT_CONTENT_MAPPING", + "VARIANT_CONTENT_AND_METADATA_MAPPING" + ], + "type": "string" + }, + "Database": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyPassphrase": { + "maxLength": 255, + "minLength": 7, + "type": "string" + }, + "MetaDataColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "PrivateKey": { + "maxLength": 4096, + "minLength": 256, + "pattern": "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$", + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SnowflakeRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDataOnly", + "AllData" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "Schema": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "SnowflakeRoleConfiguration": { + "$ref": "#/definitions/SnowflakeRoleConfiguration" + }, + "SnowflakeVpcConfiguration": { + "$ref": "#/definitions/SnowflakeVpcConfiguration" + }, + "Table": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "User": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "AccountUrl", + "Database", + "Schema", + "Table", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "SnowflakeRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "SnowflakeRoleConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SnowflakeRole": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "SnowflakeVpcConfiguration": { + "additionalProperties": false, + "properties": { + "PrivateLinkVpceId": { + "maxLength": 255, + "minLength": 47, + "pattern": "([a-zA-Z0-9\\-\\_]+\\.){2,3}vpce\\.[a-zA-Z0-9\\-]*\\.vpce-svc\\-[a-zA-Z0-9\\-]{17}$", + "type": "string" + } + }, + "required": [ + "PrivateLinkVpceId" + ], + "type": "object" + }, + "SplunkBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "SplunkDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/SplunkBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "HECAcknowledgmentTimeoutInSeconds": { + "maximum": 600, + "minimum": 180, + "type": "integer" + }, + "HECEndpoint": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "HECEndpointType": { + "enum": [ + "Raw", + "Event" + ], + "type": "string" + }, + "HECToken": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SplunkRetryOptions" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "HECEndpoint", + "S3Configuration", + "HECEndpointType" + ], + "type": "object" + }, + "SplunkRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "VpcConfiguration": { + "additionalProperties": false, + "properties": { + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/GroupId", + "typeName": "AWS::EC2::SecurityGroup" + }, + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::Subnet" + }, + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "RoleARN", + "SubnetIds", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "firehose:CreateDeliveryStream", + "firehose:DescribeDeliveryStream", + "iam:GetRole", + "iam:PassRole", + "kms:CreateGrant", + "kms:DescribeKey" + ] + }, + "delete": { + "permissions": [ + "firehose:DeleteDeliveryStream", + "firehose:DescribeDeliveryStream", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + }, + "list": { + "permissions": [ + "firehose:ListDeliveryStreams" + ] + }, + "read": { + "permissions": [ + "firehose:DescribeDeliveryStream", + "firehose:ListTagsForDeliveryStream" + ] + }, + "update": { + "permissions": [ + "firehose:UpdateDestination", + "firehose:DescribeDeliveryStream", + "firehose:StartDeliveryStreamEncryption", + "firehose:StopDeliveryStreamEncryption", + "firehose:ListTagsForDeliveryStream", + "firehose:TagDeliveryStream", + "firehose:UntagDeliveryStream", + "kms:CreateGrant", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + } + }, + "primaryIdentifier": [ + "/properties/DeliveryStreamName" + ], + "properties": { + "AmazonOpenSearchServerlessDestinationConfiguration": { + "$ref": "#/definitions/AmazonOpenSearchServerlessDestinationConfiguration" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "$ref": "#/definitions/AmazonopensearchserviceDestinationConfiguration" + }, + "Arn": { + "type": "string" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/DeliveryStreamEncryptionConfigurationInput" + }, + "DeliveryStreamName": { + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9._-]+", + "type": "string" + }, + "DeliveryStreamType": { + "enum": [ + "DirectPut", + "KinesisStreamAsSource", + "MSKAsSource" + ], + "type": "string" + }, + "ElasticsearchDestinationConfiguration": { + "$ref": "#/definitions/ElasticsearchDestinationConfiguration" + }, + "ExtendedS3DestinationConfiguration": { + "$ref": "#/definitions/ExtendedS3DestinationConfiguration" + }, + "HttpEndpointDestinationConfiguration": { + "$ref": "#/definitions/HttpEndpointDestinationConfiguration" + }, + "KinesisStreamSourceConfiguration": { + "$ref": "#/definitions/KinesisStreamSourceConfiguration" + }, + "MSKSourceConfiguration": { + "$ref": "#/definitions/MSKSourceConfiguration" + }, + "RedshiftDestinationConfiguration": { + "$ref": "#/definitions/RedshiftDestinationConfiguration" + }, + "S3DestinationConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SnowflakeDestinationConfiguration": { + "$ref": "#/definitions/SnowflakeDestinationConfiguration" + }, + "SplunkDestinationConfiguration": { + "$ref": "#/definitions/SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "typeName": "AWS::KinesisFirehose::DeliveryStream" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-organizations-organization.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-organizations-organization.json deleted file mode 100644 index 844033a13a..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-organizations-organization.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "additionalProperties": false, - "handlers": { - "create": { - "permissions": [ - "organizations:CreateOrganization", - "organizations:DescribeOrganization", - "iam:CreateServiceLinkedRole", - "organizations:ListRoots" - ] - }, - "delete": { - "permissions": [ - "organizations:DeleteOrganization", - "organizations:DescribeOrganization" - ] - }, - "list": { - "permissions": [ - "organizations:DescribeOrganization" - ] - }, - "read": { - "permissions": [ - "organizations:DescribeOrganization", - "organizations:ListRoots" - ] - }, - "update": { - "permissions": [ - "organizations:DescribeOrganization" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "pattern": "^arn:aws.*:organizations::\\d{12}:organization\\/o-[a-z0-9]{10,32}", - "type": "string" - }, - "FeatureSet": { - "default": "ALL", - "enum": [ - "ALL", - "CONSOLIDATED_BILLING" - ], - "type": "string" - }, - "Id": { - "pattern": "^o-[a-z0-9]{10,32}$", - "type": "string" - }, - "ManagementAccountArn": { - "pattern": "^arn:aws.*:organizations::\\d{12}:account\\/o-[a-z0-9]{10,32}\\/\\d{12}", - "type": "string" - }, - "ManagementAccountEmail": { - "maxLength": 64, - "minLength": 6, - "pattern": "[^\\s@]+@[^\\s@]+\\.[^\\s@]+", - "type": "string" - }, - "ManagementAccountId": { - "pattern": "^\\d{12}$", - "type": "string" - }, - "RootId": { - "maxLength": 64, - "pattern": "^r-[0-9a-z]{4,32}$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn", - "/properties/ManagementAccountArn", - "/properties/ManagementAccountId", - "/properties/ManagementAccountEmail", - "/properties/RootId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-organizations.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::Organizations::Organization" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-rds-integration.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-rds-integration.json new file mode 100644 index 0000000000..8bb00c0dfe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-rds-integration.json @@ -0,0 +1,154 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SourceArn", + "/properties/TargetArn", + "/properties/KMSKeyId", + "/properties/AdditionalEncryptionContext" + ], + "definitions": { + "EncryptionContextMap": { + "additionalProperties": false, + "patternProperties": { + "^[\\s\\S]*$": { + "maxLength": 131072, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "handlers": { + "create": { + "permissions": [ + "rds:CreateIntegration", + "rds:DescribeIntegrations", + "rds:AddTagsToResource", + "kms:CreateGrant", + "kms:DescribeKey", + "redshift:CreateInboundIntegration" + ] + }, + "delete": { + "permissions": [ + "rds:DeleteIntegration", + "rds:DescribeIntegrations" + ] + }, + "list": { + "permissions": [ + "rds:DescribeIntegrations" + ] + }, + "read": { + "permissions": [ + "rds:DescribeIntegrations" + ] + }, + "update": { + "permissions": [ + "rds:DescribeIntegrations", + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource", + "rds:ModifyIntegration" + ] + } + }, + "primaryIdentifier": [ + "/properties/IntegrationArn" + ], + "properties": { + "AdditionalEncryptionContext": { + "$ref": "#/definitions/EncryptionContextMap" + }, + "CreateTime": { + "type": "string" + }, + "DataFilter": { + "maxLength": 25600, + "minLength": 1, + "pattern": "[a-zA-Z0-9_ \"\\\\\\-$,*.:?+\\/]*", + "type": "string" + }, + "Description": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + }, + "IntegrationArn": { + "type": "string" + }, + "IntegrationName": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "KMSKeyId": { + "type": "string" + }, + "SourceArn": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "TargetArn": { + "type": "string" + } + }, + "propertyTransform": { + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/SourceArn": "$lowercase(SourceArn)" + }, + "readOnlyProperties": [ + "/properties/IntegrationArn", + "/properties/CreateTime" + ], + "required": [ + "SourceArn", + "TargetArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-app.json new file mode 100644 index 0000000000..d565ffb835 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-app.json @@ -0,0 +1,210 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/Tags", + "/properties/ResourceSpec" + ], + "definitions": { + "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" + }, + "SageMakerImageArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:DescribeApp" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DescribeApp" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListApps" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeApp", + "sagemaker:DescribeApp" + ] + } + }, + "primaryIdentifier": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName" + ], + "properties": { + "AppArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app/.*", + "type": "string" + }, + "AppName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "RStudioServerPro", + "RSessionGateway", + "Canvas" + ], + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "ResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/AppArn" + ], + "required": [ + "AppName", + "AppType", + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::App", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} 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..5cd4ea45fa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-domain.json @@ -0,0 +1,831 @@ +{ + "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" + } + }, + "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" + } + }, + "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-model.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-model.json new file mode 100644 index 0000000000..ef768bc0ed --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-model.json @@ -0,0 +1,235 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ExecutionRoleArn", + "/properties/EnableNetworkIsolation", + "/properties/InferenceExecutionConfig", + "/properties/PrimaryContainer", + "/properties/ModelName", + "/properties/VpcConfig", + "/properties/Containers" + ], + "definitions": { + "ContainerDefinition": { + "additionalProperties": false, + "properties": { + "ContainerHostname": { + "type": "string" + }, + "Environment": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Image": { + "type": "string" + }, + "ImageConfig": { + "$ref": "#/definitions/ImageConfig" + }, + "InferenceSpecificationName": { + "type": "string" + }, + "Mode": { + "type": "string" + }, + "ModelDataSource": { + "$ref": "#/definitions/ModelDataSource" + }, + "ModelDataUrl": { + "type": "string" + }, + "ModelPackageName": { + "type": "string" + }, + "MultiModelConfig": { + "$ref": "#/definitions/MultiModelConfig" + } + }, + "type": "object" + }, + "ImageConfig": { + "additionalProperties": false, + "properties": { + "RepositoryAccessMode": { + "type": "string" + }, + "RepositoryAuthConfig": { + "$ref": "#/definitions/RepositoryAuthConfig" + } + }, + "required": [ + "RepositoryAccessMode" + ], + "type": "object" + }, + "InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "ModelAccessConfig": { + "additionalProperties": false, + "properties": { + "AcceptEula": { + "type": "boolean" + } + }, + "required": [ + "AcceptEula" + ], + "type": "object" + }, + "ModelDataSource": { + "additionalProperties": false, + "properties": { + "S3DataSource": { + "$ref": "#/definitions/S3DataSource" + } + }, + "required": [ + "S3DataSource" + ], + "type": "object" + }, + "MultiModelConfig": { + "additionalProperties": false, + "properties": { + "ModelCacheSetting": { + "type": "string" + } + }, + "type": "object" + }, + "RepositoryAuthConfig": { + "additionalProperties": false, + "properties": { + "RepositoryCredentialsProviderArn": { + "type": "string" + } + }, + "required": [ + "RepositoryCredentialsProviderArn" + ], + "type": "object" + }, + "S3DataSource": { + "additionalProperties": false, + "properties": { + "CompressionType": { + "type": "string" + }, + "ModelAccessConfig": { + "$ref": "#/definitions/ModelAccessConfig" + }, + "S3DataType": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "S3Uri", + "S3DataType", + "CompressionType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Subnets", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/ContainerDefinition" + }, + "type": "array", + "uniqueItems": false + }, + "EnableNetworkIsolation": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/InferenceExecutionConfig" + }, + "ModelName": { + "type": "string" + }, + "PrimaryContainer": { + "$ref": "#/definitions/ContainerDefinition" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcConfig": { + "$ref": "#/definitions/VpcConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SageMaker::Model" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-space.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-space.json new file mode 100644 index 0000000000..1ad92e7aa4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-space.json @@ -0,0 +1,436 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/SpaceName", + "/properties/SpaceSharingSettings", + "/properties/OwnershipSettings" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "TensorBoard", + "RStudioServerPro", + "RSessionGateway", + "JupyterLab", + "CodeEditor" + ], + "type": "string" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystem": { + "additionalProperties": false, + "properties": { + "EFSFileSystem": { + "$ref": "#/definitions/EFSFileSystem" + } + }, + "type": "object" + }, + "CustomFileSystems": { + "items": { + "$ref": "#/definitions/CustomFileSystem" + }, + "maxItems": 1, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "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" + }, + "EFSFileSystem": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EbsStorageSettings": { + "additionalProperties": false, + "properties": { + "EbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "EbsVolumeSizeInGb" + ], + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "OwnershipSettings": { + "additionalProperties": false, + "properties": { + "OwnerUserProfileName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "required": [ + "OwnerUserProfileName" + ], + "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" + }, + "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" + }, + "SpaceCodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "SpaceJupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "SpaceSettings": { + "additionalProperties": false, + "properties": { + "AppType": { + "$ref": "#/definitions/AppType" + }, + "CodeEditorAppSettings": { + "$ref": "#/definitions/SpaceCodeEditorAppSettings" + }, + "CustomFileSystems": { + "$ref": "#/definitions/CustomFileSystems" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/SpaceJupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/SpaceStorageSettings" + } + }, + "type": "object" + }, + "SpaceSharingSettings": { + "additionalProperties": false, + "properties": { + "SharingType": { + "enum": [ + "Private", + "Shared" + ], + "type": "string" + } + }, + "required": [ + "SharingType" + ], + "type": "object" + }, + "SpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "EbsStorageSettings": { + "$ref": "#/definitions/EbsStorageSettings" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateSpace", + "sagemaker:DescribeSpace" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteSpace", + "sagemaker:DescribeSpace" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListSpaces" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeSpace" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateSpace", + "sagemaker:DescribeSpace" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId", + "/properties/SpaceName" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "OwnershipSettings": { + "$ref": "#/definitions/OwnershipSettings" + }, + "SpaceArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:space/.*", + "type": "string" + }, + "SpaceDisplayName": { + "maxLength": 64, + "pattern": "^(?!\\s*$).+", + "type": "string" + }, + "SpaceName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SpaceSettings": { + "$ref": "#/definitions/SpaceSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + }, + "SpaceSharingSettings": { + "$ref": "#/definitions/SpaceSharingSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/SpaceArn", + "/properties/Url" + ], + "required": [ + "DomainId", + "SpaceName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SageMaker::Space", + "writeOnlyProperties": [ + "/properties/SpaceSettings", + "/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..c2c0daf9fe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-sagemaker-userprofile.json @@ -0,0 +1,592 @@ +{ + "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" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "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" + }, + "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-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-stepfunctions-activity.json deleted file mode 100644 index 7aaf191ed1..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-stepfunctions-activity.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateActivity", - "states:TagResource" - ] - }, - "delete": { - "permissions": [ - "states:DescribeActivity", - "states:DeleteActivity" - ] - }, - "list": { - "permissions": [ - "states:ListActivities" - ] - }, - "read": { - "permissions": [ - "states:DescribeActivity", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:ListTagsForResource", - "states:TagResource", - "states:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::Activity" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-stepfunctions-statemachine.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-stepfunctions-statemachine.json deleted file mode 100644 index c8a1b0f42e..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-stepfunctions-statemachine.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/StateMachineName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StateMachineName", - "/properties/StateMachineType" - ], - "definitions": { - "CloudWatchLogsLogGroup": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Definition": { - "minProperties": 1, - "type": "object" - }, - "DefinitionSubstitutions": { - "additionalProperties": false, - "minProperties": 1, - "patternProperties": { - ".*": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer" - }, - { - "type": "boolean" - } - ] - } - }, - "type": "object" - }, - "LogDestination": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsLogGroup": { - "$ref": "#/definitions/CloudWatchLogsLogGroup" - } - }, - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "Destinations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LogDestination" - }, - "minItems": 1, - "type": "array" - }, - "IncludeExecutionData": { - "type": "boolean" - }, - "Level": { - "enum": [ - "ALL", - "ERROR", - "FATAL", - "OFF" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TracingConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateStateMachine", - "states:DescribeStateMachine", - "states:TagResource", - "iam:PassRole", - "s3:GetObject" - ] - }, - "delete": { - "permissions": [ - "states:DeleteStateMachine", - "states:DescribeStateMachine" - ] - }, - "list": { - "permissions": [ - "states:ListStateMachines" - ] - }, - "read": { - "permissions": [ - "states:DescribeStateMachine", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:UpdateStateMachine", - "states:TagResource", - "states:UntagResource", - "states:ListTagsForResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Definition": { - "$ref": "#/definitions/Definition" - }, - "DefinitionS3Location": { - "$ref": "#/definitions/S3Location" - }, - "DefinitionString": { - "maxLength": 1048576, - "minLength": 1, - "type": "string" - }, - "DefinitionSubstitutions": { - "$ref": "#/definitions/DefinitionSubstitutions" - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "RoleArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineName": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "StateMachineRevisionId": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineType": { - "enum": [ - "STANDARD", - "EXPRESS" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - }, - "TracingConfiguration": { - "$ref": "#/definitions/TracingConfiguration" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/StateMachineRevisionId" - ], - "required": [ - "RoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::StateMachine", - "writeOnlyProperties": [ - "/properties/Definition", - "/properties/DefinitionS3Location", - "/properties/DefinitionSubstitutions" - ] -} 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 d4eecdc54e..f0200c759f 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py @@ -540,6 +540,7 @@ "AWS::SSO::Instance", "AWS::SSO::InstanceAccessControlAttributeConfiguration", "AWS::SSO::PermissionSet", + "AWS::SageMaker::MlflowTrackingServer", "AWS::SageMaker::ModelCard", "AWS::Scheduler::Schedule", "AWS::Scheduler::ScheduleGroup", @@ -662,7 +663,6 @@ "aws-appsync-graphqlschema.json", "aws-appsync-resolver.json", "aws-appsync-sourceapiassociation.json", - "aws-arczonalshift-zonalautoshiftconfiguration.json", "aws-athena-datacatalog.json", "aws-athena-namedquery.json", "aws-athena-preparedstatement.json", @@ -679,7 +679,6 @@ "aws-backup-restoretestingplan.json", "aws-backup-restoretestingselection.json", "aws-batch-computeenvironment.json", - "aws-batch-jobdefinition.json", "aws-batch-jobqueue.json", "aws-batch-schedulingpolicy.json", "aws-ce-anomalymonitor.json", @@ -886,7 +885,6 @@ "aws-events-eventbuspolicy.json", "aws-events-rule.json", "aws-fms-notificationchannel.json", - "aws-fms-policy.json", "aws-fms-resourceset.json", "aws-fsx-datarepositoryassociation.json", "aws-fsx-filesystem.json", @@ -894,7 +892,6 @@ "aws-fsx-storagevirtualmachine.json", "aws-fsx-volume.json", "aws-globalaccelerator-accelerator.json", - "aws-globalaccelerator-crossaccountattachment.json", "aws-globalaccelerator-endpointgroup.json", "aws-globalaccelerator-listener.json", "aws-glue-classifier.json", @@ -910,7 +907,6 @@ "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", @@ -945,7 +941,6 @@ "aws-internetmonitor-monitor.json", "aws-kinesis-stream.json", "aws-kinesisanalyticsv2-application.json", - "aws-kinesisfirehose-deliverystream.json", "aws-kms-key.json", "aws-kms-replicakey.json", "aws-lakeformation-datacellsfilter.json", @@ -955,6 +950,7 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", + "aws-lambda-alias.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", "aws-lambda-function.json", @@ -1073,11 +1069,11 @@ "aws-s3-bucketpolicy.json", "aws-s3objectlambda-accesspoint.json", "aws-s3objectlambda-accesspointpolicy.json", + "aws-sagemaker-mlflowtrackingserver.json", "aws-sagemaker-modelcard.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", @@ -1132,6 +1128,8 @@ "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", diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-arczonalshift-zonalautoshiftconfiguration.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-arczonalshift-zonalautoshiftconfiguration.json new file mode 100644 index 0000000000..3bdd4887b2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-arczonalshift-zonalautoshiftconfiguration.json @@ -0,0 +1,169 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "allOf": [ + { + "required": [ + "ResourceIdentifier" + ] + } + ], + "anyOf": [ + { + "required": [ + "ZonalAutoshiftStatus" + ] + }, + { + "required": [ + "PracticeRunConfiguration" + ] + } + ] + } + ], + "createOnlyProperties": [ + "/properties/ResourceIdentifier" + ], + "definitions": { + "ControlCondition": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "maxLength": 1024, + "minLength": 8, + "pattern": "^arn:.*$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/ControlConditionType" + } + }, + "required": [ + "AlarmIdentifier", + "Type" + ], + "type": "object" + }, + "ControlConditionType": { + "enum": [ + "CLOUDWATCH" + ], + "type": "string" + }, + "PracticeRunConfiguration": { + "additionalProperties": false, + "properties": { + "BlockedDates": { + "insertionOrder": false, + "items": { + "maxLength": 10, + "minLength": 10, + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockedWindows": { + "insertionOrder": false, + "items": { + "maxLength": 19, + "minLength": 19, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}-(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockingAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "OutcomeAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "OutcomeAlarms" + ], + "type": "object" + }, + "ZonalAutoshiftStatus": { + "enum": [ + "ENABLED" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "arc-zonal-shift:CreatePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "arc-zonal-shift:DeletePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration" + ] + }, + "list": { + "permissions": [ + "arc-zonal-shift:ListManagedResources" + ] + }, + "read": { + "permissions": [ + "arc-zonal-shift:GetManagedResource" + ] + }, + "update": { + "permissions": [ + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdatePracticeRunConfiguration", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms" + ] + } + }, + "primaryIdentifier": [ + "/properties/ResourceIdentifier" + ], + "properties": { + "PracticeRunConfiguration": { + "$ref": "#/definitions/PracticeRunConfiguration" + }, + "ResourceIdentifier": { + "maxLength": 1024, + "minLength": 8, + "type": "string" + }, + "ZonalAutoshiftStatus": { + "$ref": "#/definitions/ZonalAutoshiftStatus" + } + }, + "tagging": { + "taggable": false + }, + "typeName": "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-batch-jobdefinition.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-batch-jobdefinition.json new file mode 100644 index 0000000000..2d82031cd0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-batch-jobdefinition.json @@ -0,0 +1,992 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tags", + "/properties/JobDefinitionName" + ], + "definitions": { + "AuthorizationConfig": { + "additionalProperties": false, + "properties": { + "AccessPointId": { + "type": "string" + }, + "Iam": { + "type": "string" + } + }, + "type": "object" + }, + "ContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "FargatePlatformConfiguration": { + "$ref": "#/definitions/FargatePlatformConfiguration" + }, + "Image": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "JobRoleArn": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Memory": { + "type": "integer" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + }, + "Vcpus": { + "type": "integer" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Device": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "HostPath": { + "type": "string" + }, + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EcsProperties": { + "additionalProperties": false, + "properties": { + "TaskProperties": { + "items": { + "$ref": "#/definitions/EcsTaskProperties" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "TaskProperties" + ], + "type": "object" + }, + "EcsTaskProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "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": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EfsVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "AuthorizationConfig": { + "$ref": "#/definitions/AuthorizationConfig" + }, + "FileSystemId": { + "type": "string" + }, + "RootDirectory": { + "type": "string" + }, + "TransitEncryption": { + "type": "string" + }, + "TransitEncryptionPort": { + "type": "integer" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EksContainer": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Env": { + "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": { + "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": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Requests": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "type": "object" + }, + "EksContainerSecurityContext": { + "additionalProperties": false, + "properties": { + "AllowPrivilegeEscalation": { + "type": "boolean" + }, + "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" + }, + "EksProperties": { + "additionalProperties": false, + "properties": { + "PodProperties": { + "$ref": "#/definitions/PodProperties" + } + }, + "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" + }, + "FargatePlatformConfiguration": { + "additionalProperties": false, + "properties": { + "PlatformVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ImagePullSecret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "LinuxParameters": { + "additionalProperties": false, + "properties": { + "Devices": { + "items": { + "$ref": "#/definitions/Device" + }, + "type": "array", + "uniqueItems": false + }, + "InitProcessEnabled": { + "type": "boolean" + }, + "MaxSwap": { + "type": "integer" + }, + "SharedMemorySize": { + "type": "integer" + }, + "Swappiness": { + "type": "integer" + }, + "Tmpfs": { + "items": { + "$ref": "#/definitions/Tmpfs" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "SecretOptions": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "Metadata": { + "additionalProperties": false, + "properties": { + "Labels": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "type": "object" + }, + "MountPoints": { + "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": { + "items": { + "$ref": "#/definitions/NodeRangeProperty" + }, + "type": "array", + "uniqueItems": false + }, + "NumNodes": { + "type": "integer" + } + }, + "required": [ + "MainNode", + "NodeRangeProperties", + "NumNodes" + ], + "type": "object" + }, + "NodeRangeProperty": { + "additionalProperties": false, + "properties": { + "Container": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "TargetNodes": { + "type": "string" + } + }, + "required": [ + "TargetNodes" + ], + "type": "object" + }, + "PodProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "DnsPolicy": { + "type": "string" + }, + "HostNetwork": { + "type": "boolean" + }, + "ImagePullSecrets": { + "items": { + "$ref": "#/definitions/ImagePullSecret" + }, + "type": "array", + "uniqueItems": false + }, + "InitContainers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "Metadata": { + "$ref": "#/definitions/Metadata" + }, + "ServiceAccountName": { + "type": "string" + }, + "ShareProcessNamespace": { + "type": "boolean" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/EksVolume" + }, + "type": "array", + "uniqueItems": false + } + }, + "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": { + "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": [ + "ValueFrom", + "Name" + ], + "type": "object" + }, + "TaskContainerDependency": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "ContainerName": { + "type": "string" + } + }, + "required": [ + "Condition", + "ContainerName" + ], + "type": "object" + }, + "TaskContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "DependsOn": { + "items": { + "$ref": "#/definitions/TaskContainerDependency" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "Essential": { + "type": "boolean" + }, + "Image": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "Name": { + "type": "string" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Timeout": { + "additionalProperties": false, + "properties": { + "AttemptDurationSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tmpfs": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "MountOptions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Size": { + "type": "integer" + } + }, + "required": [ + "Size", + "ContainerPath" + ], + "type": "object" + }, + "Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "integer" + } + }, + "required": [ + "SoftLimit", + "HardLimit", + "Name" + ], + "type": "object" + }, + "Volumes": { + "additionalProperties": false, + "properties": { + "EfsVolumeConfiguration": { + "$ref": "#/definitions/EfsVolumeConfiguration" + }, + "Host": { + "$ref": "#/definitions/VolumesHost" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "VolumesHost": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContainerProperties": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "EksProperties": { + "$ref": "#/definitions/EksProperties" + }, + "Id": { + "type": "string" + }, + "JobDefinitionName": { + "type": "string" + }, + "NodeProperties": { + "$ref": "#/definitions/NodeProperties" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "PlatformCapabilities": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "PropagateTags": { + "type": "boolean" + }, + "RetryStrategy": { + "$ref": "#/definitions/RetryStrategy" + }, + "SchedulingPriority": { + "type": "integer" + }, + "Tags": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Timeout": { + "$ref": "#/definitions/Timeout" + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type" + ], + "typeName": "AWS::Batch::JobDefinition" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-fms-policy.json new file mode 100644 index 0000000000..8456d02fd6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-fms-policy.json @@ -0,0 +1,472 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkAclCommonPolicy": { + "additionalProperties": false, + "properties": { + "NetworkAclEntrySet": { + "$ref": "#/definitions/NetworkAclEntrySet" + } + }, + "required": [ + "NetworkAclEntrySet" + ], + "type": "object" + }, + "NetworkAclEntry": { + "additionalProperties": false, + "properties": { + "CidrBlock": { + "pattern": "^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))$", + "type": "string" + }, + "Egress": { + "type": "boolean" + }, + "IcmpTypeCode": { + "additionalProperties": false, + "properties": { + "Code": { + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "Type": { + "maximum": 255, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Code", + "Type" + ], + "type": "object" + }, + "Ipv6CidrBlock": { + "pattern": "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))(/(1[0-2]|[0-9]))?$", + "type": "string" + }, + "PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + }, + "To": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "From", + "To" + ], + "type": "object" + }, + "Protocol": { + "pattern": "^(tcp|udp|icmp|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", + "type": "string" + }, + "RuleAction": { + "enum": [ + "allow", + "deny" + ], + "type": "string" + } + }, + "required": [ + "Egress", + "Protocol", + "RuleAction" + ], + "type": "object" + }, + "NetworkAclEntryList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/NetworkAclEntry" + }, + "type": "array" + }, + "NetworkAclEntrySet": { + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "FirstEntries" + ] + }, + { + "required": [ + "LastEntries" + ] + } + ], + "properties": { + "FirstEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + }, + "ForceRemediateForFirstEntries": { + "type": "boolean" + }, + "ForceRemediateForLastEntries": { + "type": "boolean" + }, + "LastEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + } + }, + "required": [ + "ForceRemediateForFirstEntries", + "ForceRemediateForLastEntries" + ], + "type": "object" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + }, + { + "required": [ + "NetworkAclCommonPolicy" + ] + } + ], + "properties": { + "NetworkAclCommonPolicy": { + "$ref": "#/definitions/NetworkAclCommonPolicy" + }, + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL", + "NETWORK_ACL_COMMON" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-globalaccelerator-crossaccountattachment.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-globalaccelerator-crossaccountattachment.json new file mode 100644 index 0000000000..31881ad480 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-globalaccelerator-crossaccountattachment.json @@ -0,0 +1,123 @@ +{ + "additionalProperties": false, + "definitions": { + "Resource": { + "additionalProperties": false, + "properties": { + "EndpointId": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "EndpointId" + ], + "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": [ + "globalaccelerator:DescribeCrossAccountAttachment", + "globalaccelerator:CreateCrossAccountAttachment", + "globalaccelerator:TagResource" + ] + }, + "delete": { + "permissions": [ + "globalaccelerator:DescribeCrossAccountAttachment", + "globalaccelerator:DeleteCrossAccountAttachment" + ] + }, + "list": { + "permissions": [ + "globalaccelerator:ListCrossAccountAttachments" + ] + }, + "read": { + "permissions": [ + "globalaccelerator:DescribeCrossAccountAttachment" + ] + }, + "update": { + "permissions": [ + "globalaccelerator:UpdateCrossAccountAttachment", + "globalaccelerator:DescribeCrossAccountAttachment", + "globalaccelerator:TagResource", + "globalaccelerator:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AttachmentArn" + ], + "properties": { + "AttachmentArn": { + "type": "string" + }, + "Name": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]{0,64}$", + "type": "string" + }, + "Principals": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Resources": { + "items": { + "$ref": "#/definitions/Resource" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/AttachmentArn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-globalaccelerator", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::GlobalAccelerator::CrossAccountAttachment", + "writeOnlyProperties": [ + "/properties/Resources/*/Region" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-trigger.json new file mode 100644 index 0000000000..974dd89b9f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-trigger.json @@ -0,0 +1,172 @@ +{ + "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/ap_south_2/aws-kinesisfirehose-deliverystream.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-kinesisfirehose-deliverystream.json new file mode 100644 index 0000000000..37b2adaff0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-kinesisfirehose-deliverystream.json @@ -0,0 +1,1607 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeliveryStreamName", + "/properties/DeliveryStreamType", + "/properties/ElasticsearchDestinationConfiguration/VpcConfiguration", + "/properties/AmazonopensearchserviceDestinationConfiguration/VpcConfiguration", + "/properties/AmazonOpenSearchServerlessDestinationConfiguration/VpcConfiguration", + "/properties/KinesisStreamSourceConfiguration", + "/properties/MSKSourceConfiguration", + "/properties/SnowflakeDestinationConfiguration/SnowflakeVpcConfiguration" + ], + "definitions": { + "AmazonOpenSearchServerlessBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonOpenSearchServerlessDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonOpenSearchServerlessBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CollectionEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "relationshipRef": { + "propertyPath": "/properties/CollectionEndpoint", + "typeName": "AWS::OpenSearchServerless::Collection" + }, + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonOpenSearchServerlessRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonOpenSearchServerlessRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonopensearchserviceBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonopensearchserviceRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "Connectivity": { + "enum": [ + "PUBLIC", + "PRIVATE" + ], + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "Connectivity" + ], + "type": "object" + }, + "BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": { + "relationshipRef": { + "propertyPath": "/properties/LogGroupName", + "typeName": "AWS::Logs::LogGroup" + }, + "type": "string" + }, + "LogStreamName": { + "relationshipRef": { + "propertyPath": "/properties/LogStreamName", + "typeName": "AWS::Logs::LogStream" + }, + "type": "string" + } + }, + "type": "object" + }, + "CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableColumns": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableName": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/SchemaConfiguration" + } + }, + "type": "object" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + }, + "KeyType": { + "enum": [ + "AWS_OWNED_CMK", + "CUSTOMER_MANAGED_CMK" + ], + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/OpenXJsonSerDe" + } + }, + "type": "object" + }, + "DocumentIdOptions": { + "additionalProperties": false, + "properties": { + "DefaultDocumentIdFormat": { + "enum": [ + "FIREHOSE_DEFAULT", + "NO_DOCUMENT_ID" + ], + "type": "string" + } + }, + "required": [ + "DefaultDocumentIdFormat" + ], + "type": "object" + }, + "DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + } + }, + "type": "object" + }, + "ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/ElasticsearchBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Elasticsearch::Domain" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::OpenSearchService::Domain" + } + } + ], + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/ElasticsearchRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "ElasticsearchRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KMSEncryptionConfig": { + "$ref": "#/definitions/KMSEncryptionConfig" + }, + "NoEncryptionConfig": { + "enum": [ + "NoEncryption" + ], + "type": "string" + } + }, + "type": "object" + }, + "ExtendedS3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "CustomTimeZone": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "DataFormatConversionConfiguration": { + "$ref": "#/definitions/DataFormatConversionConfiguration" + }, + "DynamicPartitioningConfiguration": { + "$ref": "#/definitions/DynamicPartitioningConfiguration" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "FileExtension": { + "maxLength": 128, + "minLength": 0, + "pattern": "^$|\\.[0-9a-z!\\-_.*'()]+", + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "HiveJsonSerDe": { + "additionalProperties": false, + "properties": { + "TimestampFormats": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "HttpEndpointCommonAttribute": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeValue" + ], + "type": "object" + }, + "HttpEndpointConfiguration": { + "additionalProperties": false, + "properties": { + "AccessKey": { + "maxLength": 4096, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Url": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "HttpEndpointDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/HttpEndpointConfiguration" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RequestConfiguration": { + "$ref": "#/definitions/HttpEndpointRequestConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "EndpointConfiguration", + "S3Configuration" + ], + "type": "object" + }, + "HttpEndpointRequestConfiguration": { + "additionalProperties": false, + "properties": { + "CommonAttributes": { + "items": { + "$ref": "#/definitions/HttpEndpointCommonAttribute" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "ContentEncoding": { + "enum": [ + "NONE", + "GZIP" + ], + "type": "string" + } + }, + "type": "object" + }, + "InputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Deserializer": { + "$ref": "#/definitions/Deserializer" + } + }, + "type": "object" + }, + "KMSEncryptionConfig": { + "additionalProperties": false, + "properties": { + "AWSKMSKeyARN": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + } + }, + "required": [ + "AWSKMSKeyARN" + ], + "type": "object" + }, + "KinesisStreamSourceConfiguration": { + "additionalProperties": false, + "properties": { + "KinesisStreamARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "KinesisStreamARN" + ], + "type": "object" + }, + "MSKSourceConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AuthenticationConfiguration" + }, + "MSKClusterARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::MSK::Cluster" + }, + "type": "string" + }, + "TopicName": { + "maxLength": 255, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\._\\-]+", + "type": "string" + } + }, + "required": [ + "MSKClusterARN", + "TopicName", + "AuthenticationConfiguration" + ], + "type": "object" + }, + "OpenXJsonSerDe": { + "additionalProperties": false, + "properties": { + "CaseInsensitive": { + "type": "boolean" + }, + "ColumnToJsonKeyMappings": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ConvertDotsInJsonKeysToUnderscores": { + "type": "boolean" + } + }, + "type": "object" + }, + "OrcSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "BloomFilterColumns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BloomFilterFalsePositiveProbability": { + "type": "number" + }, + "Compression": { + "type": "string" + }, + "DictionaryKeyThreshold": { + "type": "number" + }, + "EnablePadding": { + "type": "boolean" + }, + "FormatVersion": { + "type": "string" + }, + "PaddingTolerance": { + "type": "number" + }, + "RowIndexStride": { + "type": "integer" + }, + "StripeSizeBytes": { + "type": "integer" + } + }, + "type": "object" + }, + "OutputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Serializer": { + "$ref": "#/definitions/Serializer" + } + }, + "type": "object" + }, + "ParquetSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "Compression": { + "type": "string" + }, + "EnableDictionaryCompression": { + "type": "boolean" + }, + "MaxPaddingBytes": { + "type": "integer" + }, + "PageSizeBytes": { + "type": "integer" + }, + "WriterVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Processors": { + "items": { + "$ref": "#/definitions/Processor" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Processor": { + "additionalProperties": false, + "properties": { + "Parameters": { + "items": { + "$ref": "#/definitions/ProcessorParameter" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "enum": [ + "RecordDeAggregation", + "Decompression", + "CloudWatchLogProcessing", + "Lambda", + "MetadataExtraction", + "AppendDelimiterToRecord" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ProcessorParameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Lambda::Function" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Lambda::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "RedshiftDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterJDBCURL": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "CopyCommand": { + "$ref": "#/definitions/CopyCommand" + }, + "Password": { + "maxLength": 512, + "minLength": 6, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RedshiftRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "Username": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "S3Configuration", + "ClusterJDBCURL", + "CopyCommand", + "RoleARN" + ], + "type": "object" + }, + "RedshiftRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "RetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "SchemaConfiguration": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Database" + }, + "type": "string" + }, + "Region": { + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "TableName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Table" + }, + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "SecretsManagerConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecretARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::SecretsManager::Secret" + }, + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Serializer": { + "additionalProperties": false, + "properties": { + "OrcSerDe": { + "$ref": "#/definitions/OrcSerDe" + }, + "ParquetSerDe": { + "$ref": "#/definitions/ParquetSerDe" + } + }, + "type": "object" + }, + "SnowflakeDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "AccountUrl": { + "maxLength": 2048, + "minLength": 24, + "pattern": ".+?\\.snowflakecomputing\\.com", + "type": "string" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ContentColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "DataLoadingOption": { + "enum": [ + "JSON_MAPPING", + "VARIANT_CONTENT_MAPPING", + "VARIANT_CONTENT_AND_METADATA_MAPPING" + ], + "type": "string" + }, + "Database": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyPassphrase": { + "maxLength": 255, + "minLength": 7, + "type": "string" + }, + "MetaDataColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "PrivateKey": { + "maxLength": 4096, + "minLength": 256, + "pattern": "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$", + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SnowflakeRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDataOnly", + "AllData" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "Schema": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "SnowflakeRoleConfiguration": { + "$ref": "#/definitions/SnowflakeRoleConfiguration" + }, + "SnowflakeVpcConfiguration": { + "$ref": "#/definitions/SnowflakeVpcConfiguration" + }, + "Table": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "User": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "AccountUrl", + "Database", + "Schema", + "Table", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "SnowflakeRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "SnowflakeRoleConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SnowflakeRole": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "SnowflakeVpcConfiguration": { + "additionalProperties": false, + "properties": { + "PrivateLinkVpceId": { + "maxLength": 255, + "minLength": 47, + "pattern": "([a-zA-Z0-9\\-\\_]+\\.){2,3}vpce\\.[a-zA-Z0-9\\-]*\\.vpce-svc\\-[a-zA-Z0-9\\-]{17}$", + "type": "string" + } + }, + "required": [ + "PrivateLinkVpceId" + ], + "type": "object" + }, + "SplunkBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "SplunkDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/SplunkBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "HECAcknowledgmentTimeoutInSeconds": { + "maximum": 600, + "minimum": 180, + "type": "integer" + }, + "HECEndpoint": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "HECEndpointType": { + "enum": [ + "Raw", + "Event" + ], + "type": "string" + }, + "HECToken": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SplunkRetryOptions" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "HECEndpoint", + "S3Configuration", + "HECEndpointType" + ], + "type": "object" + }, + "SplunkRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "VpcConfiguration": { + "additionalProperties": false, + "properties": { + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/GroupId", + "typeName": "AWS::EC2::SecurityGroup" + }, + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::Subnet" + }, + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "RoleARN", + "SubnetIds", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "firehose:CreateDeliveryStream", + "firehose:DescribeDeliveryStream", + "iam:GetRole", + "iam:PassRole", + "kms:CreateGrant", + "kms:DescribeKey" + ] + }, + "delete": { + "permissions": [ + "firehose:DeleteDeliveryStream", + "firehose:DescribeDeliveryStream", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + }, + "list": { + "permissions": [ + "firehose:ListDeliveryStreams" + ] + }, + "read": { + "permissions": [ + "firehose:DescribeDeliveryStream", + "firehose:ListTagsForDeliveryStream" + ] + }, + "update": { + "permissions": [ + "firehose:UpdateDestination", + "firehose:DescribeDeliveryStream", + "firehose:StartDeliveryStreamEncryption", + "firehose:StopDeliveryStreamEncryption", + "firehose:ListTagsForDeliveryStream", + "firehose:TagDeliveryStream", + "firehose:UntagDeliveryStream", + "kms:CreateGrant", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + } + }, + "primaryIdentifier": [ + "/properties/DeliveryStreamName" + ], + "properties": { + "AmazonOpenSearchServerlessDestinationConfiguration": { + "$ref": "#/definitions/AmazonOpenSearchServerlessDestinationConfiguration" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "$ref": "#/definitions/AmazonopensearchserviceDestinationConfiguration" + }, + "Arn": { + "type": "string" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/DeliveryStreamEncryptionConfigurationInput" + }, + "DeliveryStreamName": { + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9._-]+", + "type": "string" + }, + "DeliveryStreamType": { + "enum": [ + "DirectPut", + "KinesisStreamAsSource", + "MSKAsSource" + ], + "type": "string" + }, + "ElasticsearchDestinationConfiguration": { + "$ref": "#/definitions/ElasticsearchDestinationConfiguration" + }, + "ExtendedS3DestinationConfiguration": { + "$ref": "#/definitions/ExtendedS3DestinationConfiguration" + }, + "HttpEndpointDestinationConfiguration": { + "$ref": "#/definitions/HttpEndpointDestinationConfiguration" + }, + "KinesisStreamSourceConfiguration": { + "$ref": "#/definitions/KinesisStreamSourceConfiguration" + }, + "MSKSourceConfiguration": { + "$ref": "#/definitions/MSKSourceConfiguration" + }, + "RedshiftDestinationConfiguration": { + "$ref": "#/definitions/RedshiftDestinationConfiguration" + }, + "S3DestinationConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SnowflakeDestinationConfiguration": { + "$ref": "#/definitions/SnowflakeDestinationConfiguration" + }, + "SplunkDestinationConfiguration": { + "$ref": "#/definitions/SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "typeName": "AWS::KinesisFirehose::DeliveryStream" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-lambda-alias.json deleted file mode 100644 index 4a291518b6..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/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/ap_south_2/aws-secretsmanager-resourcepolicy.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-secretsmanager-resourcepolicy.json new file mode 100644 index 0000000000..92fc7be26c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/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_south_2/aws-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-stepfunctions-activity.json deleted file mode 100644 index 7aaf191ed1..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-stepfunctions-activity.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateActivity", - "states:TagResource" - ] - }, - "delete": { - "permissions": [ - "states:DescribeActivity", - "states:DeleteActivity" - ] - }, - "list": { - "permissions": [ - "states:ListActivities" - ] - }, - "read": { - "permissions": [ - "states:DescribeActivity", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:ListTagsForResource", - "states:TagResource", - "states:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::Activity" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-stepfunctions-statemachine.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-stepfunctions-statemachine.json deleted file mode 100644 index c8a1b0f42e..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-stepfunctions-statemachine.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/StateMachineName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StateMachineName", - "/properties/StateMachineType" - ], - "definitions": { - "CloudWatchLogsLogGroup": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Definition": { - "minProperties": 1, - "type": "object" - }, - "DefinitionSubstitutions": { - "additionalProperties": false, - "minProperties": 1, - "patternProperties": { - ".*": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer" - }, - { - "type": "boolean" - } - ] - } - }, - "type": "object" - }, - "LogDestination": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsLogGroup": { - "$ref": "#/definitions/CloudWatchLogsLogGroup" - } - }, - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "Destinations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LogDestination" - }, - "minItems": 1, - "type": "array" - }, - "IncludeExecutionData": { - "type": "boolean" - }, - "Level": { - "enum": [ - "ALL", - "ERROR", - "FATAL", - "OFF" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TracingConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateStateMachine", - "states:DescribeStateMachine", - "states:TagResource", - "iam:PassRole", - "s3:GetObject" - ] - }, - "delete": { - "permissions": [ - "states:DeleteStateMachine", - "states:DescribeStateMachine" - ] - }, - "list": { - "permissions": [ - "states:ListStateMachines" - ] - }, - "read": { - "permissions": [ - "states:DescribeStateMachine", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:UpdateStateMachine", - "states:TagResource", - "states:UntagResource", - "states:ListTagsForResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Definition": { - "$ref": "#/definitions/Definition" - }, - "DefinitionS3Location": { - "$ref": "#/definitions/S3Location" - }, - "DefinitionString": { - "maxLength": 1048576, - "minLength": 1, - "type": "string" - }, - "DefinitionSubstitutions": { - "$ref": "#/definitions/DefinitionSubstitutions" - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "RoleArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineName": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "StateMachineRevisionId": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineType": { - "enum": [ - "STANDARD", - "EXPRESS" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - }, - "TracingConfiguration": { - "$ref": "#/definitions/TracingConfiguration" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/StateMachineRevisionId" - ], - "required": [ - "RoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::StateMachine", - "writeOnlyProperties": [ - "/properties/Definition", - "/properties/DefinitionS3Location", - "/properties/DefinitionSubstitutions" - ] -} 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 9e5cf9623a..ccbea6b894 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py @@ -133,9 +133,14 @@ "AWS::Bedrock::Agent", "AWS::Bedrock::AgentAlias", "AWS::Bedrock::DataSource", + "AWS::Bedrock::Flow", + "AWS::Bedrock::FlowAlias", + "AWS::Bedrock::FlowVersion", "AWS::Bedrock::Guardrail", "AWS::Bedrock::GuardrailVersion", "AWS::Bedrock::KnowledgeBase", + "AWS::Bedrock::Prompt", + "AWS::Bedrock::PromptVersion", "AWS::Budgets::Budget", "AWS::Budgets::BudgetsAction", "AWS::CDK::Metadata", @@ -1291,7 +1296,6 @@ "aws-aps-rulegroupsnamespace.json", "aws-aps-scraper.json", "aws-aps-workspace.json", - "aws-arczonalshift-zonalautoshiftconfiguration.json", "aws-athena-capacityreservation.json", "aws-athena-datacatalog.json", "aws-athena-namedquery.json", @@ -1314,15 +1318,19 @@ "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", @@ -1340,7 +1348,6 @@ "aws-cleanrooms-configuredtableassociation.json", "aws-cleanrooms-membership.json", "aws-cleanrooms-privacybudgettemplate.json", - "aws-cleanroomsml-trainingdataset.json", "aws-cloud9-environmentec2.json", "aws-cloudformation-customresource.json", "aws-cloudformation-hookdefaultversion.json", @@ -1383,7 +1390,6 @@ "aws-cloudwatch-insightrule.json", "aws-cloudwatch-metricstream.json", "aws-codeartifact-domain.json", - "aws-codeartifact-packagegroup.json", "aws-codeartifact-repository.json", "aws-codebuild-fleet.json", "aws-codebuild-project.json", @@ -1693,7 +1699,6 @@ "aws-fis-experimenttemplate.json", "aws-fis-targetaccountconfiguration.json", "aws-fms-notificationchannel.json", - "aws-fms-policy.json", "aws-fms-resourceset.json", "aws-forecast-dataset.json", "aws-forecast-datasetgroup.json", @@ -1739,7 +1744,6 @@ "aws-glue-schemaversionmetadata.json", "aws-glue-securityconfiguration.json", "aws-glue-table.json", - "aws-glue-trigger.json", "aws-glue-workflow.json", "aws-grafana-workspace.json", "aws-greengrass-connectordefinition.json", @@ -1860,7 +1864,6 @@ "aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.json", "aws-kinesisanalyticsv2-applicationoutput.json", "aws-kinesisanalyticsv2-applicationreferencedatasource.json", - "aws-kinesisfirehose-deliverystream.json", "aws-kinesisvideo-signalingchannel.json", "aws-kinesisvideo-stream.json", "aws-kms-alias.json", @@ -2023,6 +2026,7 @@ "aws-opsworks-volume.json", "aws-opsworkscm-server.json", "aws-organizations-account.json", + "aws-organizations-organization.json", "aws-organizations-organizationalunit.json", "aws-organizations-policy.json", "aws-organizations-resourcepolicy.json", @@ -2083,7 +2087,6 @@ "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", "aws-rds-globalcluster.json", - "aws-rds-integration.json", "aws-rds-optiongroup.json", "aws-redshift-cluster.json", "aws-redshift-clusterparametergroup.json", @@ -2155,11 +2158,9 @@ "aws-s3outposts-bucket.json", "aws-s3outposts-bucketpolicy.json", "aws-s3outposts-endpoint.json", - "aws-sagemaker-app.json", "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", @@ -2168,7 +2169,6 @@ "aws-sagemaker-inferencecomponent.json", "aws-sagemaker-inferenceexperiment.json", "aws-sagemaker-mlflowtrackingserver.json", - "aws-sagemaker-model.json", "aws-sagemaker-modelbiasjobdefinition.json", "aws-sagemaker-modelcard.json", "aws-sagemaker-modelexplainabilityjobdefinition.json", @@ -2180,8 +2180,6 @@ "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-sagemaker-pipeline.json", "aws-sagemaker-project.json", - "aws-sagemaker-space.json", - "aws-sagemaker-userprofile.json", "aws-sagemaker-workteam.json", "aws-scheduler-schedule.json", "aws-scheduler-schedulegroup.json", @@ -2274,6 +2272,8 @@ "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-supportapp-accountalias.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-arczonalshift-zonalautoshiftconfiguration.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-arczonalshift-zonalautoshiftconfiguration.json new file mode 100644 index 0000000000..3bdd4887b2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-arczonalshift-zonalautoshiftconfiguration.json @@ -0,0 +1,169 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "allOf": [ + { + "required": [ + "ResourceIdentifier" + ] + } + ], + "anyOf": [ + { + "required": [ + "ZonalAutoshiftStatus" + ] + }, + { + "required": [ + "PracticeRunConfiguration" + ] + } + ] + } + ], + "createOnlyProperties": [ + "/properties/ResourceIdentifier" + ], + "definitions": { + "ControlCondition": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "maxLength": 1024, + "minLength": 8, + "pattern": "^arn:.*$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/ControlConditionType" + } + }, + "required": [ + "AlarmIdentifier", + "Type" + ], + "type": "object" + }, + "ControlConditionType": { + "enum": [ + "CLOUDWATCH" + ], + "type": "string" + }, + "PracticeRunConfiguration": { + "additionalProperties": false, + "properties": { + "BlockedDates": { + "insertionOrder": false, + "items": { + "maxLength": 10, + "minLength": 10, + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockedWindows": { + "insertionOrder": false, + "items": { + "maxLength": 19, + "minLength": 19, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}-(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockingAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "OutcomeAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "OutcomeAlarms" + ], + "type": "object" + }, + "ZonalAutoshiftStatus": { + "enum": [ + "ENABLED" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "arc-zonal-shift:CreatePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "arc-zonal-shift:DeletePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration" + ] + }, + "list": { + "permissions": [ + "arc-zonal-shift:ListManagedResources" + ] + }, + "read": { + "permissions": [ + "arc-zonal-shift:GetManagedResource" + ] + }, + "update": { + "permissions": [ + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdatePracticeRunConfiguration", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms" + ] + } + }, + "primaryIdentifier": [ + "/properties/ResourceIdentifier" + ], + "properties": { + "PracticeRunConfiguration": { + "$ref": "#/definitions/PracticeRunConfiguration" + }, + "ResourceIdentifier": { + "maxLength": 1024, + "minLength": 8, + "type": "string" + }, + "ZonalAutoshiftStatus": { + "$ref": "#/definitions/ZonalAutoshiftStatus" + } + }, + "tagging": { + "taggable": false + }, + "typeName": "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-batch-jobdefinition.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-batch-jobdefinition.json new file mode 100644 index 0000000000..2d82031cd0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-batch-jobdefinition.json @@ -0,0 +1,992 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tags", + "/properties/JobDefinitionName" + ], + "definitions": { + "AuthorizationConfig": { + "additionalProperties": false, + "properties": { + "AccessPointId": { + "type": "string" + }, + "Iam": { + "type": "string" + } + }, + "type": "object" + }, + "ContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "FargatePlatformConfiguration": { + "$ref": "#/definitions/FargatePlatformConfiguration" + }, + "Image": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "JobRoleArn": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Memory": { + "type": "integer" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + }, + "Vcpus": { + "type": "integer" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Device": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "HostPath": { + "type": "string" + }, + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EcsProperties": { + "additionalProperties": false, + "properties": { + "TaskProperties": { + "items": { + "$ref": "#/definitions/EcsTaskProperties" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "TaskProperties" + ], + "type": "object" + }, + "EcsTaskProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "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": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EfsVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "AuthorizationConfig": { + "$ref": "#/definitions/AuthorizationConfig" + }, + "FileSystemId": { + "type": "string" + }, + "RootDirectory": { + "type": "string" + }, + "TransitEncryption": { + "type": "string" + }, + "TransitEncryptionPort": { + "type": "integer" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EksContainer": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Env": { + "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": { + "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": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Requests": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "type": "object" + }, + "EksContainerSecurityContext": { + "additionalProperties": false, + "properties": { + "AllowPrivilegeEscalation": { + "type": "boolean" + }, + "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" + }, + "EksProperties": { + "additionalProperties": false, + "properties": { + "PodProperties": { + "$ref": "#/definitions/PodProperties" + } + }, + "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" + }, + "FargatePlatformConfiguration": { + "additionalProperties": false, + "properties": { + "PlatformVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ImagePullSecret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "LinuxParameters": { + "additionalProperties": false, + "properties": { + "Devices": { + "items": { + "$ref": "#/definitions/Device" + }, + "type": "array", + "uniqueItems": false + }, + "InitProcessEnabled": { + "type": "boolean" + }, + "MaxSwap": { + "type": "integer" + }, + "SharedMemorySize": { + "type": "integer" + }, + "Swappiness": { + "type": "integer" + }, + "Tmpfs": { + "items": { + "$ref": "#/definitions/Tmpfs" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "SecretOptions": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "Metadata": { + "additionalProperties": false, + "properties": { + "Labels": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "type": "object" + }, + "MountPoints": { + "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": { + "items": { + "$ref": "#/definitions/NodeRangeProperty" + }, + "type": "array", + "uniqueItems": false + }, + "NumNodes": { + "type": "integer" + } + }, + "required": [ + "MainNode", + "NodeRangeProperties", + "NumNodes" + ], + "type": "object" + }, + "NodeRangeProperty": { + "additionalProperties": false, + "properties": { + "Container": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "TargetNodes": { + "type": "string" + } + }, + "required": [ + "TargetNodes" + ], + "type": "object" + }, + "PodProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "DnsPolicy": { + "type": "string" + }, + "HostNetwork": { + "type": "boolean" + }, + "ImagePullSecrets": { + "items": { + "$ref": "#/definitions/ImagePullSecret" + }, + "type": "array", + "uniqueItems": false + }, + "InitContainers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "Metadata": { + "$ref": "#/definitions/Metadata" + }, + "ServiceAccountName": { + "type": "string" + }, + "ShareProcessNamespace": { + "type": "boolean" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/EksVolume" + }, + "type": "array", + "uniqueItems": false + } + }, + "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": { + "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": [ + "ValueFrom", + "Name" + ], + "type": "object" + }, + "TaskContainerDependency": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "ContainerName": { + "type": "string" + } + }, + "required": [ + "Condition", + "ContainerName" + ], + "type": "object" + }, + "TaskContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "DependsOn": { + "items": { + "$ref": "#/definitions/TaskContainerDependency" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "Essential": { + "type": "boolean" + }, + "Image": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "Name": { + "type": "string" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Timeout": { + "additionalProperties": false, + "properties": { + "AttemptDurationSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tmpfs": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "MountOptions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Size": { + "type": "integer" + } + }, + "required": [ + "Size", + "ContainerPath" + ], + "type": "object" + }, + "Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "integer" + } + }, + "required": [ + "SoftLimit", + "HardLimit", + "Name" + ], + "type": "object" + }, + "Volumes": { + "additionalProperties": false, + "properties": { + "EfsVolumeConfiguration": { + "$ref": "#/definitions/EfsVolumeConfiguration" + }, + "Host": { + "$ref": "#/definitions/VolumesHost" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "VolumesHost": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContainerProperties": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "EksProperties": { + "$ref": "#/definitions/EksProperties" + }, + "Id": { + "type": "string" + }, + "JobDefinitionName": { + "type": "string" + }, + "NodeProperties": { + "$ref": "#/definitions/NodeProperties" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "PlatformCapabilities": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "PropagateTags": { + "type": "boolean" + }, + "RetryStrategy": { + "$ref": "#/definitions/RetryStrategy" + }, + "SchedulingPriority": { + "type": "integer" + }, + "Tags": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Timeout": { + "$ref": "#/definitions/Timeout" + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type" + ], + "typeName": "AWS::Batch::JobDefinition" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanroomsml-trainingdataset.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanroomsml-trainingdataset.json new file mode 100644 index 0000000000..bdb81299cb --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanroomsml-trainingdataset.json @@ -0,0 +1,249 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Description", + "/properties/Name", + "/properties/RoleArn", + "/properties/TrainingData" + ], + "definitions": { + "ColumnSchema": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "ColumnTypes": { + "items": { + "$ref": "#/definitions/ColumnType" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ColumnName", + "ColumnTypes" + ], + "type": "object" + }, + "ColumnType": { + "enum": [ + "USER_ID", + "ITEM_ID", + "TIMESTAMP", + "CATEGORICAL_FEATURE", + "NUMERICAL_FEATURE" + ], + "type": "string" + }, + "DataSource": { + "additionalProperties": false, + "properties": { + "GlueDataSource": { + "$ref": "#/definitions/GlueDataSource" + } + }, + "required": [ + "GlueDataSource" + ], + "type": "object" + }, + "Dataset": { + "additionalProperties": false, + "properties": { + "InputConfig": { + "$ref": "#/definitions/DatasetInputConfig" + }, + "Type": { + "$ref": "#/definitions/DatasetType" + } + }, + "required": [ + "InputConfig", + "Type" + ], + "type": "object" + }, + "DatasetInputConfig": { + "additionalProperties": false, + "properties": { + "DataSource": { + "$ref": "#/definitions/DataSource" + }, + "Schema": { + "items": { + "$ref": "#/definitions/ColumnSchema" + }, + "maxItems": 100, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "DataSource", + "Schema" + ], + "type": "object" + }, + "DatasetType": { + "enum": [ + "INTERACTIONS" + ], + "type": "string" + }, + "GlueDataSource": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "DatabaseName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_]+-)*([a-zA-Z0-9_]+))?$", + "type": "string" + }, + "TableName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + } + }, + "required": [ + "DatabaseName", + "TableName" + ], + "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" + }, + "TrainingDatasetStatus": { + "enum": [ + "ACTIVE" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms-ml:CreateTrainingDataset", + "cleanrooms-ml:GetTrainingDataset", + "cleanrooms-ml:TagResource", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "cleanrooms-ml:DeleteTrainingDataset" + ] + }, + "list": { + "permissions": [ + "cleanrooms-ml:ListTrainingDatasets" + ] + }, + "read": { + "permissions": [ + "cleanrooms-ml:GetTrainingDataset" + ] + }, + "update": { + "permissions": [ + "cleanrooms-ml:TagResource", + "cleanrooms-ml:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/TrainingDatasetArn" + ], + "properties": { + "Description": { + "maxLength": 255, + "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", + "type": "string" + }, + "Name": { + "maxLength": 63, + "minLength": 1, + "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[-a-z]*:iam::[0-9]{12}:role/.+$", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/TrainingDatasetStatus" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TrainingData": { + "items": { + "$ref": "#/definitions/Dataset" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "TrainingDatasetArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:training-dataset/[-a-zA-Z0-9_/.]+$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Status", + "/properties/TrainingDatasetArn" + ], + "required": [ + "Name", + "RoleArn", + "TrainingData" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRoomsML::TrainingDataset" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-codeartifact-packagegroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-codeartifact-packagegroup.json new file mode 100644 index 0000000000..e562f240ae --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-codeartifact-packagegroup.json @@ -0,0 +1,195 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainName", + "/properties/Pattern" + ], + "definitions": { + "OriginConfiguration": { + "additionalProperties": false, + "properties": { + "Restrictions": { + "$ref": "#/definitions/Restrictions", + "type": "object" + } + }, + "required": [ + "Restrictions" + ], + "type": "object" + }, + "RestrictionType": { + "additionalProperties": false, + "properties": { + "Repositories": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RestrictionMode": { + "enum": [ + "ALLOW", + "BLOCK", + "ALLOW_SPECIFIC_REPOSITORIES", + "INHERIT" + ], + "type": "string" + } + }, + "required": [ + "RestrictionMode" + ], + "type": "object" + }, + "Restrictions": { + "additionalProperties": false, + "properties": { + "ExternalUpstream": { + "$ref": "#/definitions/RestrictionType", + "type": "object" + }, + "InternalUpstream": { + "$ref": "#/definitions/RestrictionType", + "type": "object" + }, + "Publish": { + "$ref": "#/definitions/RestrictionType", + "type": "object" + } + }, + "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": [ + "codeartifact:CreatePackageGroup", + "codeartifact:DescribePackageGroup", + "codeartifact:UpdatePackageGroup", + "codeartifact:UpdatePackageGroupOriginConfiguration", + "codeartifact:ListAllowedRepositoriesForGroup", + "codeartifact:ListTagsForResource", + "codeartifact:TagResource" + ] + }, + "delete": { + "permissions": [ + "codeartifact:DeletePackageGroup", + "codeartifact:DescribePackageGroup" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "DomainName": { + "$ref": "resource-schema.json#/properties/DomainName" + } + }, + "required": [ + "DomainName" + ] + }, + "permissions": [ + "codeartifact:ListPackageGroups" + ] + }, + "read": { + "permissions": [ + "codeartifact:DescribePackageGroup", + "codeartifact:ListAllowedRepositoriesForGroup", + "codeartifact:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "codeartifact:UpdatePackageGroup", + "codeartifact:UpdatePackageGroupOriginConfiguration", + "codeartifact:DescribePackageGroup", + "codeartifact:ListAllowedRepositoriesForGroup", + "codeartifact:ListTagsForResource", + "codeartifact:TagResource", + "codeartifact:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "ContactInfo": { + "maxLength": 1000, + "type": "string" + }, + "Description": { + "maxLength": 1000, + "type": "string" + }, + "DomainName": { + "maxLength": 50, + "minLength": 2, + "pattern": "^([a-z][a-z0-9\\-]{0,48}[a-z0-9])$", + "type": "string" + }, + "DomainOwner": { + "pattern": "[0-9]{12}", + "type": "string" + }, + "OriginConfiguration": { + "$ref": "#/definitions/OriginConfiguration", + "type": "object" + }, + "Pattern": { + "maxLength": 520, + "minLength": 2, + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "Pattern", + "DomainName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-codeartifact", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CodeArtifact::PackageGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-fms-policy.json new file mode 100644 index 0000000000..8456d02fd6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-fms-policy.json @@ -0,0 +1,472 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkAclCommonPolicy": { + "additionalProperties": false, + "properties": { + "NetworkAclEntrySet": { + "$ref": "#/definitions/NetworkAclEntrySet" + } + }, + "required": [ + "NetworkAclEntrySet" + ], + "type": "object" + }, + "NetworkAclEntry": { + "additionalProperties": false, + "properties": { + "CidrBlock": { + "pattern": "^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))$", + "type": "string" + }, + "Egress": { + "type": "boolean" + }, + "IcmpTypeCode": { + "additionalProperties": false, + "properties": { + "Code": { + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "Type": { + "maximum": 255, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Code", + "Type" + ], + "type": "object" + }, + "Ipv6CidrBlock": { + "pattern": "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))(/(1[0-2]|[0-9]))?$", + "type": "string" + }, + "PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + }, + "To": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "From", + "To" + ], + "type": "object" + }, + "Protocol": { + "pattern": "^(tcp|udp|icmp|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", + "type": "string" + }, + "RuleAction": { + "enum": [ + "allow", + "deny" + ], + "type": "string" + } + }, + "required": [ + "Egress", + "Protocol", + "RuleAction" + ], + "type": "object" + }, + "NetworkAclEntryList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/NetworkAclEntry" + }, + "type": "array" + }, + "NetworkAclEntrySet": { + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "FirstEntries" + ] + }, + { + "required": [ + "LastEntries" + ] + } + ], + "properties": { + "FirstEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + }, + "ForceRemediateForFirstEntries": { + "type": "boolean" + }, + "ForceRemediateForLastEntries": { + "type": "boolean" + }, + "LastEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + } + }, + "required": [ + "ForceRemediateForFirstEntries", + "ForceRemediateForLastEntries" + ], + "type": "object" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + }, + { + "required": [ + "NetworkAclCommonPolicy" + ] + } + ], + "properties": { + "NetworkAclCommonPolicy": { + "$ref": "#/definitions/NetworkAclCommonPolicy" + }, + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL", + "NETWORK_ACL_COMMON" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-glue-trigger.json new file mode 100644 index 0000000000..974dd89b9f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-glue-trigger.json @@ -0,0 +1,172 @@ +{ + "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/ap_southeast_1/aws-kinesisfirehose-deliverystream.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-kinesisfirehose-deliverystream.json new file mode 100644 index 0000000000..37b2adaff0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-kinesisfirehose-deliverystream.json @@ -0,0 +1,1607 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeliveryStreamName", + "/properties/DeliveryStreamType", + "/properties/ElasticsearchDestinationConfiguration/VpcConfiguration", + "/properties/AmazonopensearchserviceDestinationConfiguration/VpcConfiguration", + "/properties/AmazonOpenSearchServerlessDestinationConfiguration/VpcConfiguration", + "/properties/KinesisStreamSourceConfiguration", + "/properties/MSKSourceConfiguration", + "/properties/SnowflakeDestinationConfiguration/SnowflakeVpcConfiguration" + ], + "definitions": { + "AmazonOpenSearchServerlessBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonOpenSearchServerlessDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonOpenSearchServerlessBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CollectionEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "relationshipRef": { + "propertyPath": "/properties/CollectionEndpoint", + "typeName": "AWS::OpenSearchServerless::Collection" + }, + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonOpenSearchServerlessRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonOpenSearchServerlessRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonopensearchserviceBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonopensearchserviceRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "Connectivity": { + "enum": [ + "PUBLIC", + "PRIVATE" + ], + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "Connectivity" + ], + "type": "object" + }, + "BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": { + "relationshipRef": { + "propertyPath": "/properties/LogGroupName", + "typeName": "AWS::Logs::LogGroup" + }, + "type": "string" + }, + "LogStreamName": { + "relationshipRef": { + "propertyPath": "/properties/LogStreamName", + "typeName": "AWS::Logs::LogStream" + }, + "type": "string" + } + }, + "type": "object" + }, + "CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableColumns": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableName": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/SchemaConfiguration" + } + }, + "type": "object" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + }, + "KeyType": { + "enum": [ + "AWS_OWNED_CMK", + "CUSTOMER_MANAGED_CMK" + ], + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/OpenXJsonSerDe" + } + }, + "type": "object" + }, + "DocumentIdOptions": { + "additionalProperties": false, + "properties": { + "DefaultDocumentIdFormat": { + "enum": [ + "FIREHOSE_DEFAULT", + "NO_DOCUMENT_ID" + ], + "type": "string" + } + }, + "required": [ + "DefaultDocumentIdFormat" + ], + "type": "object" + }, + "DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + } + }, + "type": "object" + }, + "ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/ElasticsearchBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Elasticsearch::Domain" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::OpenSearchService::Domain" + } + } + ], + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/ElasticsearchRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "ElasticsearchRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KMSEncryptionConfig": { + "$ref": "#/definitions/KMSEncryptionConfig" + }, + "NoEncryptionConfig": { + "enum": [ + "NoEncryption" + ], + "type": "string" + } + }, + "type": "object" + }, + "ExtendedS3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "CustomTimeZone": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "DataFormatConversionConfiguration": { + "$ref": "#/definitions/DataFormatConversionConfiguration" + }, + "DynamicPartitioningConfiguration": { + "$ref": "#/definitions/DynamicPartitioningConfiguration" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "FileExtension": { + "maxLength": 128, + "minLength": 0, + "pattern": "^$|\\.[0-9a-z!\\-_.*'()]+", + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "HiveJsonSerDe": { + "additionalProperties": false, + "properties": { + "TimestampFormats": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "HttpEndpointCommonAttribute": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeValue" + ], + "type": "object" + }, + "HttpEndpointConfiguration": { + "additionalProperties": false, + "properties": { + "AccessKey": { + "maxLength": 4096, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Url": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "HttpEndpointDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/HttpEndpointConfiguration" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RequestConfiguration": { + "$ref": "#/definitions/HttpEndpointRequestConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "EndpointConfiguration", + "S3Configuration" + ], + "type": "object" + }, + "HttpEndpointRequestConfiguration": { + "additionalProperties": false, + "properties": { + "CommonAttributes": { + "items": { + "$ref": "#/definitions/HttpEndpointCommonAttribute" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "ContentEncoding": { + "enum": [ + "NONE", + "GZIP" + ], + "type": "string" + } + }, + "type": "object" + }, + "InputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Deserializer": { + "$ref": "#/definitions/Deserializer" + } + }, + "type": "object" + }, + "KMSEncryptionConfig": { + "additionalProperties": false, + "properties": { + "AWSKMSKeyARN": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + } + }, + "required": [ + "AWSKMSKeyARN" + ], + "type": "object" + }, + "KinesisStreamSourceConfiguration": { + "additionalProperties": false, + "properties": { + "KinesisStreamARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "KinesisStreamARN" + ], + "type": "object" + }, + "MSKSourceConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AuthenticationConfiguration" + }, + "MSKClusterARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::MSK::Cluster" + }, + "type": "string" + }, + "TopicName": { + "maxLength": 255, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\._\\-]+", + "type": "string" + } + }, + "required": [ + "MSKClusterARN", + "TopicName", + "AuthenticationConfiguration" + ], + "type": "object" + }, + "OpenXJsonSerDe": { + "additionalProperties": false, + "properties": { + "CaseInsensitive": { + "type": "boolean" + }, + "ColumnToJsonKeyMappings": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ConvertDotsInJsonKeysToUnderscores": { + "type": "boolean" + } + }, + "type": "object" + }, + "OrcSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "BloomFilterColumns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BloomFilterFalsePositiveProbability": { + "type": "number" + }, + "Compression": { + "type": "string" + }, + "DictionaryKeyThreshold": { + "type": "number" + }, + "EnablePadding": { + "type": "boolean" + }, + "FormatVersion": { + "type": "string" + }, + "PaddingTolerance": { + "type": "number" + }, + "RowIndexStride": { + "type": "integer" + }, + "StripeSizeBytes": { + "type": "integer" + } + }, + "type": "object" + }, + "OutputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Serializer": { + "$ref": "#/definitions/Serializer" + } + }, + "type": "object" + }, + "ParquetSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "Compression": { + "type": "string" + }, + "EnableDictionaryCompression": { + "type": "boolean" + }, + "MaxPaddingBytes": { + "type": "integer" + }, + "PageSizeBytes": { + "type": "integer" + }, + "WriterVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Processors": { + "items": { + "$ref": "#/definitions/Processor" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Processor": { + "additionalProperties": false, + "properties": { + "Parameters": { + "items": { + "$ref": "#/definitions/ProcessorParameter" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "enum": [ + "RecordDeAggregation", + "Decompression", + "CloudWatchLogProcessing", + "Lambda", + "MetadataExtraction", + "AppendDelimiterToRecord" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ProcessorParameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Lambda::Function" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Lambda::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "RedshiftDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterJDBCURL": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "CopyCommand": { + "$ref": "#/definitions/CopyCommand" + }, + "Password": { + "maxLength": 512, + "minLength": 6, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RedshiftRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "Username": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "S3Configuration", + "ClusterJDBCURL", + "CopyCommand", + "RoleARN" + ], + "type": "object" + }, + "RedshiftRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "RetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "SchemaConfiguration": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Database" + }, + "type": "string" + }, + "Region": { + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "TableName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Table" + }, + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "SecretsManagerConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecretARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::SecretsManager::Secret" + }, + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Serializer": { + "additionalProperties": false, + "properties": { + "OrcSerDe": { + "$ref": "#/definitions/OrcSerDe" + }, + "ParquetSerDe": { + "$ref": "#/definitions/ParquetSerDe" + } + }, + "type": "object" + }, + "SnowflakeDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "AccountUrl": { + "maxLength": 2048, + "minLength": 24, + "pattern": ".+?\\.snowflakecomputing\\.com", + "type": "string" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ContentColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "DataLoadingOption": { + "enum": [ + "JSON_MAPPING", + "VARIANT_CONTENT_MAPPING", + "VARIANT_CONTENT_AND_METADATA_MAPPING" + ], + "type": "string" + }, + "Database": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyPassphrase": { + "maxLength": 255, + "minLength": 7, + "type": "string" + }, + "MetaDataColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "PrivateKey": { + "maxLength": 4096, + "minLength": 256, + "pattern": "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$", + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SnowflakeRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDataOnly", + "AllData" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "Schema": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "SnowflakeRoleConfiguration": { + "$ref": "#/definitions/SnowflakeRoleConfiguration" + }, + "SnowflakeVpcConfiguration": { + "$ref": "#/definitions/SnowflakeVpcConfiguration" + }, + "Table": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "User": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "AccountUrl", + "Database", + "Schema", + "Table", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "SnowflakeRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "SnowflakeRoleConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SnowflakeRole": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "SnowflakeVpcConfiguration": { + "additionalProperties": false, + "properties": { + "PrivateLinkVpceId": { + "maxLength": 255, + "minLength": 47, + "pattern": "([a-zA-Z0-9\\-\\_]+\\.){2,3}vpce\\.[a-zA-Z0-9\\-]*\\.vpce-svc\\-[a-zA-Z0-9\\-]{17}$", + "type": "string" + } + }, + "required": [ + "PrivateLinkVpceId" + ], + "type": "object" + }, + "SplunkBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "SplunkDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/SplunkBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "HECAcknowledgmentTimeoutInSeconds": { + "maximum": 600, + "minimum": 180, + "type": "integer" + }, + "HECEndpoint": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "HECEndpointType": { + "enum": [ + "Raw", + "Event" + ], + "type": "string" + }, + "HECToken": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SplunkRetryOptions" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "HECEndpoint", + "S3Configuration", + "HECEndpointType" + ], + "type": "object" + }, + "SplunkRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "VpcConfiguration": { + "additionalProperties": false, + "properties": { + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/GroupId", + "typeName": "AWS::EC2::SecurityGroup" + }, + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::Subnet" + }, + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "RoleARN", + "SubnetIds", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "firehose:CreateDeliveryStream", + "firehose:DescribeDeliveryStream", + "iam:GetRole", + "iam:PassRole", + "kms:CreateGrant", + "kms:DescribeKey" + ] + }, + "delete": { + "permissions": [ + "firehose:DeleteDeliveryStream", + "firehose:DescribeDeliveryStream", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + }, + "list": { + "permissions": [ + "firehose:ListDeliveryStreams" + ] + }, + "read": { + "permissions": [ + "firehose:DescribeDeliveryStream", + "firehose:ListTagsForDeliveryStream" + ] + }, + "update": { + "permissions": [ + "firehose:UpdateDestination", + "firehose:DescribeDeliveryStream", + "firehose:StartDeliveryStreamEncryption", + "firehose:StopDeliveryStreamEncryption", + "firehose:ListTagsForDeliveryStream", + "firehose:TagDeliveryStream", + "firehose:UntagDeliveryStream", + "kms:CreateGrant", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + } + }, + "primaryIdentifier": [ + "/properties/DeliveryStreamName" + ], + "properties": { + "AmazonOpenSearchServerlessDestinationConfiguration": { + "$ref": "#/definitions/AmazonOpenSearchServerlessDestinationConfiguration" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "$ref": "#/definitions/AmazonopensearchserviceDestinationConfiguration" + }, + "Arn": { + "type": "string" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/DeliveryStreamEncryptionConfigurationInput" + }, + "DeliveryStreamName": { + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9._-]+", + "type": "string" + }, + "DeliveryStreamType": { + "enum": [ + "DirectPut", + "KinesisStreamAsSource", + "MSKAsSource" + ], + "type": "string" + }, + "ElasticsearchDestinationConfiguration": { + "$ref": "#/definitions/ElasticsearchDestinationConfiguration" + }, + "ExtendedS3DestinationConfiguration": { + "$ref": "#/definitions/ExtendedS3DestinationConfiguration" + }, + "HttpEndpointDestinationConfiguration": { + "$ref": "#/definitions/HttpEndpointDestinationConfiguration" + }, + "KinesisStreamSourceConfiguration": { + "$ref": "#/definitions/KinesisStreamSourceConfiguration" + }, + "MSKSourceConfiguration": { + "$ref": "#/definitions/MSKSourceConfiguration" + }, + "RedshiftDestinationConfiguration": { + "$ref": "#/definitions/RedshiftDestinationConfiguration" + }, + "S3DestinationConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SnowflakeDestinationConfiguration": { + "$ref": "#/definitions/SnowflakeDestinationConfiguration" + }, + "SplunkDestinationConfiguration": { + "$ref": "#/definitions/SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "typeName": "AWS::KinesisFirehose::DeliveryStream" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-organizations-organization.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-organizations-organization.json deleted file mode 100644 index 844033a13a..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-organizations-organization.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "additionalProperties": false, - "handlers": { - "create": { - "permissions": [ - "organizations:CreateOrganization", - "organizations:DescribeOrganization", - "iam:CreateServiceLinkedRole", - "organizations:ListRoots" - ] - }, - "delete": { - "permissions": [ - "organizations:DeleteOrganization", - "organizations:DescribeOrganization" - ] - }, - "list": { - "permissions": [ - "organizations:DescribeOrganization" - ] - }, - "read": { - "permissions": [ - "organizations:DescribeOrganization", - "organizations:ListRoots" - ] - }, - "update": { - "permissions": [ - "organizations:DescribeOrganization" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "pattern": "^arn:aws.*:organizations::\\d{12}:organization\\/o-[a-z0-9]{10,32}", - "type": "string" - }, - "FeatureSet": { - "default": "ALL", - "enum": [ - "ALL", - "CONSOLIDATED_BILLING" - ], - "type": "string" - }, - "Id": { - "pattern": "^o-[a-z0-9]{10,32}$", - "type": "string" - }, - "ManagementAccountArn": { - "pattern": "^arn:aws.*:organizations::\\d{12}:account\\/o-[a-z0-9]{10,32}\\/\\d{12}", - "type": "string" - }, - "ManagementAccountEmail": { - "maxLength": 64, - "minLength": 6, - "pattern": "[^\\s@]+@[^\\s@]+\\.[^\\s@]+", - "type": "string" - }, - "ManagementAccountId": { - "pattern": "^\\d{12}$", - "type": "string" - }, - "RootId": { - "maxLength": 64, - "pattern": "^r-[0-9a-z]{4,32}$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn", - "/properties/ManagementAccountArn", - "/properties/ManagementAccountId", - "/properties/ManagementAccountEmail", - "/properties/RootId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-organizations.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::Organizations::Organization" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-rds-integration.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-rds-integration.json new file mode 100644 index 0000000000..8bb00c0dfe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-rds-integration.json @@ -0,0 +1,154 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SourceArn", + "/properties/TargetArn", + "/properties/KMSKeyId", + "/properties/AdditionalEncryptionContext" + ], + "definitions": { + "EncryptionContextMap": { + "additionalProperties": false, + "patternProperties": { + "^[\\s\\S]*$": { + "maxLength": 131072, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "handlers": { + "create": { + "permissions": [ + "rds:CreateIntegration", + "rds:DescribeIntegrations", + "rds:AddTagsToResource", + "kms:CreateGrant", + "kms:DescribeKey", + "redshift:CreateInboundIntegration" + ] + }, + "delete": { + "permissions": [ + "rds:DeleteIntegration", + "rds:DescribeIntegrations" + ] + }, + "list": { + "permissions": [ + "rds:DescribeIntegrations" + ] + }, + "read": { + "permissions": [ + "rds:DescribeIntegrations" + ] + }, + "update": { + "permissions": [ + "rds:DescribeIntegrations", + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource", + "rds:ModifyIntegration" + ] + } + }, + "primaryIdentifier": [ + "/properties/IntegrationArn" + ], + "properties": { + "AdditionalEncryptionContext": { + "$ref": "#/definitions/EncryptionContextMap" + }, + "CreateTime": { + "type": "string" + }, + "DataFilter": { + "maxLength": 25600, + "minLength": 1, + "pattern": "[a-zA-Z0-9_ \"\\\\\\-$,*.:?+\\/]*", + "type": "string" + }, + "Description": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + }, + "IntegrationArn": { + "type": "string" + }, + "IntegrationName": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "KMSKeyId": { + "type": "string" + }, + "SourceArn": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "TargetArn": { + "type": "string" + } + }, + "propertyTransform": { + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/SourceArn": "$lowercase(SourceArn)" + }, + "readOnlyProperties": [ + "/properties/IntegrationArn", + "/properties/CreateTime" + ], + "required": [ + "SourceArn", + "TargetArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sagemaker-app.json new file mode 100644 index 0000000000..d565ffb835 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sagemaker-app.json @@ -0,0 +1,210 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/Tags", + "/properties/ResourceSpec" + ], + "definitions": { + "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" + }, + "SageMakerImageArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:DescribeApp" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DescribeApp" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListApps" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeApp", + "sagemaker:DescribeApp" + ] + } + }, + "primaryIdentifier": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName" + ], + "properties": { + "AppArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app/.*", + "type": "string" + }, + "AppName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "RStudioServerPro", + "RSessionGateway", + "Canvas" + ], + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "ResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/AppArn" + ], + "required": [ + "AppName", + "AppType", + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::App", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} 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..5cd4ea45fa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sagemaker-domain.json @@ -0,0 +1,831 @@ +{ + "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" + } + }, + "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" + } + }, + "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-model.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sagemaker-model.json new file mode 100644 index 0000000000..ef768bc0ed --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sagemaker-model.json @@ -0,0 +1,235 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ExecutionRoleArn", + "/properties/EnableNetworkIsolation", + "/properties/InferenceExecutionConfig", + "/properties/PrimaryContainer", + "/properties/ModelName", + "/properties/VpcConfig", + "/properties/Containers" + ], + "definitions": { + "ContainerDefinition": { + "additionalProperties": false, + "properties": { + "ContainerHostname": { + "type": "string" + }, + "Environment": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Image": { + "type": "string" + }, + "ImageConfig": { + "$ref": "#/definitions/ImageConfig" + }, + "InferenceSpecificationName": { + "type": "string" + }, + "Mode": { + "type": "string" + }, + "ModelDataSource": { + "$ref": "#/definitions/ModelDataSource" + }, + "ModelDataUrl": { + "type": "string" + }, + "ModelPackageName": { + "type": "string" + }, + "MultiModelConfig": { + "$ref": "#/definitions/MultiModelConfig" + } + }, + "type": "object" + }, + "ImageConfig": { + "additionalProperties": false, + "properties": { + "RepositoryAccessMode": { + "type": "string" + }, + "RepositoryAuthConfig": { + "$ref": "#/definitions/RepositoryAuthConfig" + } + }, + "required": [ + "RepositoryAccessMode" + ], + "type": "object" + }, + "InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "ModelAccessConfig": { + "additionalProperties": false, + "properties": { + "AcceptEula": { + "type": "boolean" + } + }, + "required": [ + "AcceptEula" + ], + "type": "object" + }, + "ModelDataSource": { + "additionalProperties": false, + "properties": { + "S3DataSource": { + "$ref": "#/definitions/S3DataSource" + } + }, + "required": [ + "S3DataSource" + ], + "type": "object" + }, + "MultiModelConfig": { + "additionalProperties": false, + "properties": { + "ModelCacheSetting": { + "type": "string" + } + }, + "type": "object" + }, + "RepositoryAuthConfig": { + "additionalProperties": false, + "properties": { + "RepositoryCredentialsProviderArn": { + "type": "string" + } + }, + "required": [ + "RepositoryCredentialsProviderArn" + ], + "type": "object" + }, + "S3DataSource": { + "additionalProperties": false, + "properties": { + "CompressionType": { + "type": "string" + }, + "ModelAccessConfig": { + "$ref": "#/definitions/ModelAccessConfig" + }, + "S3DataType": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "S3Uri", + "S3DataType", + "CompressionType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Subnets", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/ContainerDefinition" + }, + "type": "array", + "uniqueItems": false + }, + "EnableNetworkIsolation": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/InferenceExecutionConfig" + }, + "ModelName": { + "type": "string" + }, + "PrimaryContainer": { + "$ref": "#/definitions/ContainerDefinition" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcConfig": { + "$ref": "#/definitions/VpcConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SageMaker::Model" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sagemaker-space.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sagemaker-space.json new file mode 100644 index 0000000000..1ad92e7aa4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sagemaker-space.json @@ -0,0 +1,436 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/SpaceName", + "/properties/SpaceSharingSettings", + "/properties/OwnershipSettings" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "TensorBoard", + "RStudioServerPro", + "RSessionGateway", + "JupyterLab", + "CodeEditor" + ], + "type": "string" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystem": { + "additionalProperties": false, + "properties": { + "EFSFileSystem": { + "$ref": "#/definitions/EFSFileSystem" + } + }, + "type": "object" + }, + "CustomFileSystems": { + "items": { + "$ref": "#/definitions/CustomFileSystem" + }, + "maxItems": 1, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "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" + }, + "EFSFileSystem": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EbsStorageSettings": { + "additionalProperties": false, + "properties": { + "EbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "EbsVolumeSizeInGb" + ], + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "OwnershipSettings": { + "additionalProperties": false, + "properties": { + "OwnerUserProfileName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "required": [ + "OwnerUserProfileName" + ], + "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" + }, + "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" + }, + "SpaceCodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "SpaceJupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "SpaceSettings": { + "additionalProperties": false, + "properties": { + "AppType": { + "$ref": "#/definitions/AppType" + }, + "CodeEditorAppSettings": { + "$ref": "#/definitions/SpaceCodeEditorAppSettings" + }, + "CustomFileSystems": { + "$ref": "#/definitions/CustomFileSystems" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/SpaceJupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/SpaceStorageSettings" + } + }, + "type": "object" + }, + "SpaceSharingSettings": { + "additionalProperties": false, + "properties": { + "SharingType": { + "enum": [ + "Private", + "Shared" + ], + "type": "string" + } + }, + "required": [ + "SharingType" + ], + "type": "object" + }, + "SpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "EbsStorageSettings": { + "$ref": "#/definitions/EbsStorageSettings" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateSpace", + "sagemaker:DescribeSpace" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteSpace", + "sagemaker:DescribeSpace" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListSpaces" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeSpace" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateSpace", + "sagemaker:DescribeSpace" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId", + "/properties/SpaceName" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "OwnershipSettings": { + "$ref": "#/definitions/OwnershipSettings" + }, + "SpaceArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:space/.*", + "type": "string" + }, + "SpaceDisplayName": { + "maxLength": 64, + "pattern": "^(?!\\s*$).+", + "type": "string" + }, + "SpaceName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SpaceSettings": { + "$ref": "#/definitions/SpaceSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + }, + "SpaceSharingSettings": { + "$ref": "#/definitions/SpaceSharingSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/SpaceArn", + "/properties/Url" + ], + "required": [ + "DomainId", + "SpaceName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SageMaker::Space", + "writeOnlyProperties": [ + "/properties/SpaceSettings", + "/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..c2c0daf9fe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sagemaker-userprofile.json @@ -0,0 +1,592 @@ +{ + "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" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "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" + }, + "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-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-stepfunctions-activity.json deleted file mode 100644 index 7aaf191ed1..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-stepfunctions-activity.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateActivity", - "states:TagResource" - ] - }, - "delete": { - "permissions": [ - "states:DescribeActivity", - "states:DeleteActivity" - ] - }, - "list": { - "permissions": [ - "states:ListActivities" - ] - }, - "read": { - "permissions": [ - "states:DescribeActivity", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:ListTagsForResource", - "states:TagResource", - "states:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::Activity" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-stepfunctions-statemachine.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-stepfunctions-statemachine.json deleted file mode 100644 index c8a1b0f42e..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-stepfunctions-statemachine.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/StateMachineName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StateMachineName", - "/properties/StateMachineType" - ], - "definitions": { - "CloudWatchLogsLogGroup": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Definition": { - "minProperties": 1, - "type": "object" - }, - "DefinitionSubstitutions": { - "additionalProperties": false, - "minProperties": 1, - "patternProperties": { - ".*": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer" - }, - { - "type": "boolean" - } - ] - } - }, - "type": "object" - }, - "LogDestination": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsLogGroup": { - "$ref": "#/definitions/CloudWatchLogsLogGroup" - } - }, - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "Destinations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LogDestination" - }, - "minItems": 1, - "type": "array" - }, - "IncludeExecutionData": { - "type": "boolean" - }, - "Level": { - "enum": [ - "ALL", - "ERROR", - "FATAL", - "OFF" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TracingConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateStateMachine", - "states:DescribeStateMachine", - "states:TagResource", - "iam:PassRole", - "s3:GetObject" - ] - }, - "delete": { - "permissions": [ - "states:DeleteStateMachine", - "states:DescribeStateMachine" - ] - }, - "list": { - "permissions": [ - "states:ListStateMachines" - ] - }, - "read": { - "permissions": [ - "states:DescribeStateMachine", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:UpdateStateMachine", - "states:TagResource", - "states:UntagResource", - "states:ListTagsForResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Definition": { - "$ref": "#/definitions/Definition" - }, - "DefinitionS3Location": { - "$ref": "#/definitions/S3Location" - }, - "DefinitionString": { - "maxLength": 1048576, - "minLength": 1, - "type": "string" - }, - "DefinitionSubstitutions": { - "$ref": "#/definitions/DefinitionSubstitutions" - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "RoleArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineName": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "StateMachineRevisionId": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineType": { - "enum": [ - "STANDARD", - "EXPRESS" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - }, - "TracingConfiguration": { - "$ref": "#/definitions/TracingConfiguration" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/StateMachineRevisionId" - ], - "required": [ - "RoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::StateMachine", - "writeOnlyProperties": [ - "/properties/Definition", - "/properties/DefinitionS3Location", - "/properties/DefinitionSubstitutions" - ] -} 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 8043862667..9c7276cf11 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py @@ -134,9 +134,14 @@ "AWS::Bedrock::Agent", "AWS::Bedrock::AgentAlias", "AWS::Bedrock::DataSource", + "AWS::Bedrock::Flow", + "AWS::Bedrock::FlowAlias", + "AWS::Bedrock::FlowVersion", "AWS::Bedrock::Guardrail", "AWS::Bedrock::GuardrailVersion", "AWS::Bedrock::KnowledgeBase", + "AWS::Bedrock::Prompt", + "AWS::Bedrock::PromptVersion", "AWS::Budgets::Budget", "AWS::Budgets::BudgetsAction", "AWS::CDK::Metadata", @@ -1318,7 +1323,6 @@ "aws-aps-rulegroupsnamespace.json", "aws-aps-scraper.json", "aws-aps-workspace.json", - "aws-arczonalshift-zonalautoshiftconfiguration.json", "aws-athena-capacityreservation.json", "aws-athena-datacatalog.json", "aws-athena-namedquery.json", @@ -1341,15 +1345,19 @@ "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", @@ -1367,7 +1375,6 @@ "aws-cleanrooms-configuredtableassociation.json", "aws-cleanrooms-membership.json", "aws-cleanrooms-privacybudgettemplate.json", - "aws-cleanroomsml-trainingdataset.json", "aws-cloud9-environmentec2.json", "aws-cloudformation-customresource.json", "aws-cloudformation-hookdefaultversion.json", @@ -1410,7 +1417,6 @@ "aws-cloudwatch-insightrule.json", "aws-cloudwatch-metricstream.json", "aws-codeartifact-domain.json", - "aws-codeartifact-packagegroup.json", "aws-codeartifact-repository.json", "aws-codebuild-fleet.json", "aws-codebuild-project.json", @@ -1723,7 +1729,6 @@ "aws-fis-experimenttemplate.json", "aws-fis-targetaccountconfiguration.json", "aws-fms-notificationchannel.json", - "aws-fms-policy.json", "aws-fms-resourceset.json", "aws-forecast-dataset.json", "aws-forecast-datasetgroup.json", @@ -1770,7 +1775,6 @@ "aws-glue-schemaversionmetadata.json", "aws-glue-securityconfiguration.json", "aws-glue-table.json", - "aws-glue-trigger.json", "aws-glue-workflow.json", "aws-grafana-workspace.json", "aws-greengrass-connectordefinition.json", @@ -1906,7 +1910,6 @@ "aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.json", "aws-kinesisanalyticsv2-applicationoutput.json", "aws-kinesisanalyticsv2-applicationreferencedatasource.json", - "aws-kinesisfirehose-deliverystream.json", "aws-kinesisvideo-signalingchannel.json", "aws-kinesisvideo-stream.json", "aws-kms-alias.json", @@ -2064,6 +2067,7 @@ "aws-opsworks-volume.json", "aws-opsworkscm-server.json", "aws-organizations-account.json", + "aws-organizations-organization.json", "aws-organizations-organizationalunit.json", "aws-organizations-policy.json", "aws-organizations-resourcepolicy.json", @@ -2132,7 +2136,6 @@ "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", "aws-rds-globalcluster.json", - "aws-rds-integration.json", "aws-rds-optiongroup.json", "aws-redshift-cluster.json", "aws-redshift-clusterparametergroup.json", @@ -2198,11 +2201,9 @@ "aws-s3outposts-bucket.json", "aws-s3outposts-bucketpolicy.json", "aws-s3outposts-endpoint.json", - "aws-sagemaker-app.json", "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", @@ -2211,7 +2212,6 @@ "aws-sagemaker-inferencecomponent.json", "aws-sagemaker-inferenceexperiment.json", "aws-sagemaker-mlflowtrackingserver.json", - "aws-sagemaker-model.json", "aws-sagemaker-modelbiasjobdefinition.json", "aws-sagemaker-modelcard.json", "aws-sagemaker-modelexplainabilityjobdefinition.json", @@ -2223,8 +2223,6 @@ "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-sagemaker-pipeline.json", "aws-sagemaker-project.json", - "aws-sagemaker-space.json", - "aws-sagemaker-userprofile.json", "aws-sagemaker-workteam.json", "aws-scheduler-schedule.json", "aws-scheduler-schedulegroup.json", @@ -2324,6 +2322,8 @@ "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", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-arczonalshift-zonalautoshiftconfiguration.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-arczonalshift-zonalautoshiftconfiguration.json new file mode 100644 index 0000000000..3bdd4887b2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-arczonalshift-zonalautoshiftconfiguration.json @@ -0,0 +1,169 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "allOf": [ + { + "required": [ + "ResourceIdentifier" + ] + } + ], + "anyOf": [ + { + "required": [ + "ZonalAutoshiftStatus" + ] + }, + { + "required": [ + "PracticeRunConfiguration" + ] + } + ] + } + ], + "createOnlyProperties": [ + "/properties/ResourceIdentifier" + ], + "definitions": { + "ControlCondition": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "maxLength": 1024, + "minLength": 8, + "pattern": "^arn:.*$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/ControlConditionType" + } + }, + "required": [ + "AlarmIdentifier", + "Type" + ], + "type": "object" + }, + "ControlConditionType": { + "enum": [ + "CLOUDWATCH" + ], + "type": "string" + }, + "PracticeRunConfiguration": { + "additionalProperties": false, + "properties": { + "BlockedDates": { + "insertionOrder": false, + "items": { + "maxLength": 10, + "minLength": 10, + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockedWindows": { + "insertionOrder": false, + "items": { + "maxLength": 19, + "minLength": 19, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}-(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockingAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "OutcomeAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "OutcomeAlarms" + ], + "type": "object" + }, + "ZonalAutoshiftStatus": { + "enum": [ + "ENABLED" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "arc-zonal-shift:CreatePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "arc-zonal-shift:DeletePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration" + ] + }, + "list": { + "permissions": [ + "arc-zonal-shift:ListManagedResources" + ] + }, + "read": { + "permissions": [ + "arc-zonal-shift:GetManagedResource" + ] + }, + "update": { + "permissions": [ + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdatePracticeRunConfiguration", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms" + ] + } + }, + "primaryIdentifier": [ + "/properties/ResourceIdentifier" + ], + "properties": { + "PracticeRunConfiguration": { + "$ref": "#/definitions/PracticeRunConfiguration" + }, + "ResourceIdentifier": { + "maxLength": 1024, + "minLength": 8, + "type": "string" + }, + "ZonalAutoshiftStatus": { + "$ref": "#/definitions/ZonalAutoshiftStatus" + } + }, + "tagging": { + "taggable": false + }, + "typeName": "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-batch-jobdefinition.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-batch-jobdefinition.json new file mode 100644 index 0000000000..2d82031cd0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-batch-jobdefinition.json @@ -0,0 +1,992 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tags", + "/properties/JobDefinitionName" + ], + "definitions": { + "AuthorizationConfig": { + "additionalProperties": false, + "properties": { + "AccessPointId": { + "type": "string" + }, + "Iam": { + "type": "string" + } + }, + "type": "object" + }, + "ContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "FargatePlatformConfiguration": { + "$ref": "#/definitions/FargatePlatformConfiguration" + }, + "Image": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "JobRoleArn": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Memory": { + "type": "integer" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + }, + "Vcpus": { + "type": "integer" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Device": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "HostPath": { + "type": "string" + }, + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EcsProperties": { + "additionalProperties": false, + "properties": { + "TaskProperties": { + "items": { + "$ref": "#/definitions/EcsTaskProperties" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "TaskProperties" + ], + "type": "object" + }, + "EcsTaskProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "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": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EfsVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "AuthorizationConfig": { + "$ref": "#/definitions/AuthorizationConfig" + }, + "FileSystemId": { + "type": "string" + }, + "RootDirectory": { + "type": "string" + }, + "TransitEncryption": { + "type": "string" + }, + "TransitEncryptionPort": { + "type": "integer" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EksContainer": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Env": { + "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": { + "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": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Requests": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "type": "object" + }, + "EksContainerSecurityContext": { + "additionalProperties": false, + "properties": { + "AllowPrivilegeEscalation": { + "type": "boolean" + }, + "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" + }, + "EksProperties": { + "additionalProperties": false, + "properties": { + "PodProperties": { + "$ref": "#/definitions/PodProperties" + } + }, + "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" + }, + "FargatePlatformConfiguration": { + "additionalProperties": false, + "properties": { + "PlatformVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ImagePullSecret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "LinuxParameters": { + "additionalProperties": false, + "properties": { + "Devices": { + "items": { + "$ref": "#/definitions/Device" + }, + "type": "array", + "uniqueItems": false + }, + "InitProcessEnabled": { + "type": "boolean" + }, + "MaxSwap": { + "type": "integer" + }, + "SharedMemorySize": { + "type": "integer" + }, + "Swappiness": { + "type": "integer" + }, + "Tmpfs": { + "items": { + "$ref": "#/definitions/Tmpfs" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "SecretOptions": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "Metadata": { + "additionalProperties": false, + "properties": { + "Labels": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "type": "object" + }, + "MountPoints": { + "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": { + "items": { + "$ref": "#/definitions/NodeRangeProperty" + }, + "type": "array", + "uniqueItems": false + }, + "NumNodes": { + "type": "integer" + } + }, + "required": [ + "MainNode", + "NodeRangeProperties", + "NumNodes" + ], + "type": "object" + }, + "NodeRangeProperty": { + "additionalProperties": false, + "properties": { + "Container": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "TargetNodes": { + "type": "string" + } + }, + "required": [ + "TargetNodes" + ], + "type": "object" + }, + "PodProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "DnsPolicy": { + "type": "string" + }, + "HostNetwork": { + "type": "boolean" + }, + "ImagePullSecrets": { + "items": { + "$ref": "#/definitions/ImagePullSecret" + }, + "type": "array", + "uniqueItems": false + }, + "InitContainers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "Metadata": { + "$ref": "#/definitions/Metadata" + }, + "ServiceAccountName": { + "type": "string" + }, + "ShareProcessNamespace": { + "type": "boolean" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/EksVolume" + }, + "type": "array", + "uniqueItems": false + } + }, + "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": { + "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": [ + "ValueFrom", + "Name" + ], + "type": "object" + }, + "TaskContainerDependency": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "ContainerName": { + "type": "string" + } + }, + "required": [ + "Condition", + "ContainerName" + ], + "type": "object" + }, + "TaskContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "DependsOn": { + "items": { + "$ref": "#/definitions/TaskContainerDependency" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "Essential": { + "type": "boolean" + }, + "Image": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "Name": { + "type": "string" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Timeout": { + "additionalProperties": false, + "properties": { + "AttemptDurationSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tmpfs": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "MountOptions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Size": { + "type": "integer" + } + }, + "required": [ + "Size", + "ContainerPath" + ], + "type": "object" + }, + "Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "integer" + } + }, + "required": [ + "SoftLimit", + "HardLimit", + "Name" + ], + "type": "object" + }, + "Volumes": { + "additionalProperties": false, + "properties": { + "EfsVolumeConfiguration": { + "$ref": "#/definitions/EfsVolumeConfiguration" + }, + "Host": { + "$ref": "#/definitions/VolumesHost" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "VolumesHost": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContainerProperties": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "EksProperties": { + "$ref": "#/definitions/EksProperties" + }, + "Id": { + "type": "string" + }, + "JobDefinitionName": { + "type": "string" + }, + "NodeProperties": { + "$ref": "#/definitions/NodeProperties" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "PlatformCapabilities": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "PropagateTags": { + "type": "boolean" + }, + "RetryStrategy": { + "$ref": "#/definitions/RetryStrategy" + }, + "SchedulingPriority": { + "type": "integer" + }, + "Tags": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Timeout": { + "$ref": "#/definitions/Timeout" + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type" + ], + "typeName": "AWS::Batch::JobDefinition" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanroomsml-trainingdataset.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanroomsml-trainingdataset.json new file mode 100644 index 0000000000..bdb81299cb --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanroomsml-trainingdataset.json @@ -0,0 +1,249 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Description", + "/properties/Name", + "/properties/RoleArn", + "/properties/TrainingData" + ], + "definitions": { + "ColumnSchema": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "ColumnTypes": { + "items": { + "$ref": "#/definitions/ColumnType" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ColumnName", + "ColumnTypes" + ], + "type": "object" + }, + "ColumnType": { + "enum": [ + "USER_ID", + "ITEM_ID", + "TIMESTAMP", + "CATEGORICAL_FEATURE", + "NUMERICAL_FEATURE" + ], + "type": "string" + }, + "DataSource": { + "additionalProperties": false, + "properties": { + "GlueDataSource": { + "$ref": "#/definitions/GlueDataSource" + } + }, + "required": [ + "GlueDataSource" + ], + "type": "object" + }, + "Dataset": { + "additionalProperties": false, + "properties": { + "InputConfig": { + "$ref": "#/definitions/DatasetInputConfig" + }, + "Type": { + "$ref": "#/definitions/DatasetType" + } + }, + "required": [ + "InputConfig", + "Type" + ], + "type": "object" + }, + "DatasetInputConfig": { + "additionalProperties": false, + "properties": { + "DataSource": { + "$ref": "#/definitions/DataSource" + }, + "Schema": { + "items": { + "$ref": "#/definitions/ColumnSchema" + }, + "maxItems": 100, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "DataSource", + "Schema" + ], + "type": "object" + }, + "DatasetType": { + "enum": [ + "INTERACTIONS" + ], + "type": "string" + }, + "GlueDataSource": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "DatabaseName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_]+-)*([a-zA-Z0-9_]+))?$", + "type": "string" + }, + "TableName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + } + }, + "required": [ + "DatabaseName", + "TableName" + ], + "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" + }, + "TrainingDatasetStatus": { + "enum": [ + "ACTIVE" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms-ml:CreateTrainingDataset", + "cleanrooms-ml:GetTrainingDataset", + "cleanrooms-ml:TagResource", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "cleanrooms-ml:DeleteTrainingDataset" + ] + }, + "list": { + "permissions": [ + "cleanrooms-ml:ListTrainingDatasets" + ] + }, + "read": { + "permissions": [ + "cleanrooms-ml:GetTrainingDataset" + ] + }, + "update": { + "permissions": [ + "cleanrooms-ml:TagResource", + "cleanrooms-ml:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/TrainingDatasetArn" + ], + "properties": { + "Description": { + "maxLength": 255, + "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", + "type": "string" + }, + "Name": { + "maxLength": 63, + "minLength": 1, + "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[-a-z]*:iam::[0-9]{12}:role/.+$", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/TrainingDatasetStatus" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TrainingData": { + "items": { + "$ref": "#/definitions/Dataset" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "TrainingDatasetArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:training-dataset/[-a-zA-Z0-9_/.]+$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Status", + "/properties/TrainingDatasetArn" + ], + "required": [ + "Name", + "RoleArn", + "TrainingData" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRoomsML::TrainingDataset" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-codeartifact-packagegroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-codeartifact-packagegroup.json new file mode 100644 index 0000000000..e562f240ae --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-codeartifact-packagegroup.json @@ -0,0 +1,195 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainName", + "/properties/Pattern" + ], + "definitions": { + "OriginConfiguration": { + "additionalProperties": false, + "properties": { + "Restrictions": { + "$ref": "#/definitions/Restrictions", + "type": "object" + } + }, + "required": [ + "Restrictions" + ], + "type": "object" + }, + "RestrictionType": { + "additionalProperties": false, + "properties": { + "Repositories": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RestrictionMode": { + "enum": [ + "ALLOW", + "BLOCK", + "ALLOW_SPECIFIC_REPOSITORIES", + "INHERIT" + ], + "type": "string" + } + }, + "required": [ + "RestrictionMode" + ], + "type": "object" + }, + "Restrictions": { + "additionalProperties": false, + "properties": { + "ExternalUpstream": { + "$ref": "#/definitions/RestrictionType", + "type": "object" + }, + "InternalUpstream": { + "$ref": "#/definitions/RestrictionType", + "type": "object" + }, + "Publish": { + "$ref": "#/definitions/RestrictionType", + "type": "object" + } + }, + "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": [ + "codeartifact:CreatePackageGroup", + "codeartifact:DescribePackageGroup", + "codeartifact:UpdatePackageGroup", + "codeartifact:UpdatePackageGroupOriginConfiguration", + "codeartifact:ListAllowedRepositoriesForGroup", + "codeartifact:ListTagsForResource", + "codeartifact:TagResource" + ] + }, + "delete": { + "permissions": [ + "codeartifact:DeletePackageGroup", + "codeartifact:DescribePackageGroup" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "DomainName": { + "$ref": "resource-schema.json#/properties/DomainName" + } + }, + "required": [ + "DomainName" + ] + }, + "permissions": [ + "codeartifact:ListPackageGroups" + ] + }, + "read": { + "permissions": [ + "codeartifact:DescribePackageGroup", + "codeartifact:ListAllowedRepositoriesForGroup", + "codeartifact:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "codeartifact:UpdatePackageGroup", + "codeartifact:UpdatePackageGroupOriginConfiguration", + "codeartifact:DescribePackageGroup", + "codeartifact:ListAllowedRepositoriesForGroup", + "codeartifact:ListTagsForResource", + "codeartifact:TagResource", + "codeartifact:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "ContactInfo": { + "maxLength": 1000, + "type": "string" + }, + "Description": { + "maxLength": 1000, + "type": "string" + }, + "DomainName": { + "maxLength": 50, + "minLength": 2, + "pattern": "^([a-z][a-z0-9\\-]{0,48}[a-z0-9])$", + "type": "string" + }, + "DomainOwner": { + "pattern": "[0-9]{12}", + "type": "string" + }, + "OriginConfiguration": { + "$ref": "#/definitions/OriginConfiguration", + "type": "object" + }, + "Pattern": { + "maxLength": 520, + "minLength": 2, + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "Pattern", + "DomainName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-codeartifact", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CodeArtifact::PackageGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-fms-policy.json new file mode 100644 index 0000000000..8456d02fd6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-fms-policy.json @@ -0,0 +1,472 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkAclCommonPolicy": { + "additionalProperties": false, + "properties": { + "NetworkAclEntrySet": { + "$ref": "#/definitions/NetworkAclEntrySet" + } + }, + "required": [ + "NetworkAclEntrySet" + ], + "type": "object" + }, + "NetworkAclEntry": { + "additionalProperties": false, + "properties": { + "CidrBlock": { + "pattern": "^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))$", + "type": "string" + }, + "Egress": { + "type": "boolean" + }, + "IcmpTypeCode": { + "additionalProperties": false, + "properties": { + "Code": { + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "Type": { + "maximum": 255, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Code", + "Type" + ], + "type": "object" + }, + "Ipv6CidrBlock": { + "pattern": "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))(/(1[0-2]|[0-9]))?$", + "type": "string" + }, + "PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + }, + "To": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "From", + "To" + ], + "type": "object" + }, + "Protocol": { + "pattern": "^(tcp|udp|icmp|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", + "type": "string" + }, + "RuleAction": { + "enum": [ + "allow", + "deny" + ], + "type": "string" + } + }, + "required": [ + "Egress", + "Protocol", + "RuleAction" + ], + "type": "object" + }, + "NetworkAclEntryList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/NetworkAclEntry" + }, + "type": "array" + }, + "NetworkAclEntrySet": { + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "FirstEntries" + ] + }, + { + "required": [ + "LastEntries" + ] + } + ], + "properties": { + "FirstEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + }, + "ForceRemediateForFirstEntries": { + "type": "boolean" + }, + "ForceRemediateForLastEntries": { + "type": "boolean" + }, + "LastEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + } + }, + "required": [ + "ForceRemediateForFirstEntries", + "ForceRemediateForLastEntries" + ], + "type": "object" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + }, + { + "required": [ + "NetworkAclCommonPolicy" + ] + } + ], + "properties": { + "NetworkAclCommonPolicy": { + "$ref": "#/definitions/NetworkAclCommonPolicy" + }, + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL", + "NETWORK_ACL_COMMON" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-glue-trigger.json new file mode 100644 index 0000000000..974dd89b9f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-glue-trigger.json @@ -0,0 +1,172 @@ +{ + "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/ap_southeast_2/aws-kinesisfirehose-deliverystream.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-kinesisfirehose-deliverystream.json new file mode 100644 index 0000000000..37b2adaff0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-kinesisfirehose-deliverystream.json @@ -0,0 +1,1607 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeliveryStreamName", + "/properties/DeliveryStreamType", + "/properties/ElasticsearchDestinationConfiguration/VpcConfiguration", + "/properties/AmazonopensearchserviceDestinationConfiguration/VpcConfiguration", + "/properties/AmazonOpenSearchServerlessDestinationConfiguration/VpcConfiguration", + "/properties/KinesisStreamSourceConfiguration", + "/properties/MSKSourceConfiguration", + "/properties/SnowflakeDestinationConfiguration/SnowflakeVpcConfiguration" + ], + "definitions": { + "AmazonOpenSearchServerlessBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonOpenSearchServerlessDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonOpenSearchServerlessBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CollectionEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "relationshipRef": { + "propertyPath": "/properties/CollectionEndpoint", + "typeName": "AWS::OpenSearchServerless::Collection" + }, + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonOpenSearchServerlessRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonOpenSearchServerlessRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonopensearchserviceBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonopensearchserviceRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "Connectivity": { + "enum": [ + "PUBLIC", + "PRIVATE" + ], + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "Connectivity" + ], + "type": "object" + }, + "BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": { + "relationshipRef": { + "propertyPath": "/properties/LogGroupName", + "typeName": "AWS::Logs::LogGroup" + }, + "type": "string" + }, + "LogStreamName": { + "relationshipRef": { + "propertyPath": "/properties/LogStreamName", + "typeName": "AWS::Logs::LogStream" + }, + "type": "string" + } + }, + "type": "object" + }, + "CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableColumns": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableName": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/SchemaConfiguration" + } + }, + "type": "object" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + }, + "KeyType": { + "enum": [ + "AWS_OWNED_CMK", + "CUSTOMER_MANAGED_CMK" + ], + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/OpenXJsonSerDe" + } + }, + "type": "object" + }, + "DocumentIdOptions": { + "additionalProperties": false, + "properties": { + "DefaultDocumentIdFormat": { + "enum": [ + "FIREHOSE_DEFAULT", + "NO_DOCUMENT_ID" + ], + "type": "string" + } + }, + "required": [ + "DefaultDocumentIdFormat" + ], + "type": "object" + }, + "DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + } + }, + "type": "object" + }, + "ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/ElasticsearchBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Elasticsearch::Domain" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::OpenSearchService::Domain" + } + } + ], + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/ElasticsearchRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "ElasticsearchRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KMSEncryptionConfig": { + "$ref": "#/definitions/KMSEncryptionConfig" + }, + "NoEncryptionConfig": { + "enum": [ + "NoEncryption" + ], + "type": "string" + } + }, + "type": "object" + }, + "ExtendedS3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "CustomTimeZone": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "DataFormatConversionConfiguration": { + "$ref": "#/definitions/DataFormatConversionConfiguration" + }, + "DynamicPartitioningConfiguration": { + "$ref": "#/definitions/DynamicPartitioningConfiguration" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "FileExtension": { + "maxLength": 128, + "minLength": 0, + "pattern": "^$|\\.[0-9a-z!\\-_.*'()]+", + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "HiveJsonSerDe": { + "additionalProperties": false, + "properties": { + "TimestampFormats": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "HttpEndpointCommonAttribute": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeValue" + ], + "type": "object" + }, + "HttpEndpointConfiguration": { + "additionalProperties": false, + "properties": { + "AccessKey": { + "maxLength": 4096, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Url": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "HttpEndpointDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/HttpEndpointConfiguration" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RequestConfiguration": { + "$ref": "#/definitions/HttpEndpointRequestConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "EndpointConfiguration", + "S3Configuration" + ], + "type": "object" + }, + "HttpEndpointRequestConfiguration": { + "additionalProperties": false, + "properties": { + "CommonAttributes": { + "items": { + "$ref": "#/definitions/HttpEndpointCommonAttribute" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "ContentEncoding": { + "enum": [ + "NONE", + "GZIP" + ], + "type": "string" + } + }, + "type": "object" + }, + "InputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Deserializer": { + "$ref": "#/definitions/Deserializer" + } + }, + "type": "object" + }, + "KMSEncryptionConfig": { + "additionalProperties": false, + "properties": { + "AWSKMSKeyARN": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + } + }, + "required": [ + "AWSKMSKeyARN" + ], + "type": "object" + }, + "KinesisStreamSourceConfiguration": { + "additionalProperties": false, + "properties": { + "KinesisStreamARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "KinesisStreamARN" + ], + "type": "object" + }, + "MSKSourceConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AuthenticationConfiguration" + }, + "MSKClusterARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::MSK::Cluster" + }, + "type": "string" + }, + "TopicName": { + "maxLength": 255, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\._\\-]+", + "type": "string" + } + }, + "required": [ + "MSKClusterARN", + "TopicName", + "AuthenticationConfiguration" + ], + "type": "object" + }, + "OpenXJsonSerDe": { + "additionalProperties": false, + "properties": { + "CaseInsensitive": { + "type": "boolean" + }, + "ColumnToJsonKeyMappings": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ConvertDotsInJsonKeysToUnderscores": { + "type": "boolean" + } + }, + "type": "object" + }, + "OrcSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "BloomFilterColumns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BloomFilterFalsePositiveProbability": { + "type": "number" + }, + "Compression": { + "type": "string" + }, + "DictionaryKeyThreshold": { + "type": "number" + }, + "EnablePadding": { + "type": "boolean" + }, + "FormatVersion": { + "type": "string" + }, + "PaddingTolerance": { + "type": "number" + }, + "RowIndexStride": { + "type": "integer" + }, + "StripeSizeBytes": { + "type": "integer" + } + }, + "type": "object" + }, + "OutputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Serializer": { + "$ref": "#/definitions/Serializer" + } + }, + "type": "object" + }, + "ParquetSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "Compression": { + "type": "string" + }, + "EnableDictionaryCompression": { + "type": "boolean" + }, + "MaxPaddingBytes": { + "type": "integer" + }, + "PageSizeBytes": { + "type": "integer" + }, + "WriterVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Processors": { + "items": { + "$ref": "#/definitions/Processor" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Processor": { + "additionalProperties": false, + "properties": { + "Parameters": { + "items": { + "$ref": "#/definitions/ProcessorParameter" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "enum": [ + "RecordDeAggregation", + "Decompression", + "CloudWatchLogProcessing", + "Lambda", + "MetadataExtraction", + "AppendDelimiterToRecord" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ProcessorParameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Lambda::Function" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Lambda::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "RedshiftDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterJDBCURL": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "CopyCommand": { + "$ref": "#/definitions/CopyCommand" + }, + "Password": { + "maxLength": 512, + "minLength": 6, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RedshiftRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "Username": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "S3Configuration", + "ClusterJDBCURL", + "CopyCommand", + "RoleARN" + ], + "type": "object" + }, + "RedshiftRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "RetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "SchemaConfiguration": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Database" + }, + "type": "string" + }, + "Region": { + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "TableName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Table" + }, + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "SecretsManagerConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecretARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::SecretsManager::Secret" + }, + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Serializer": { + "additionalProperties": false, + "properties": { + "OrcSerDe": { + "$ref": "#/definitions/OrcSerDe" + }, + "ParquetSerDe": { + "$ref": "#/definitions/ParquetSerDe" + } + }, + "type": "object" + }, + "SnowflakeDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "AccountUrl": { + "maxLength": 2048, + "minLength": 24, + "pattern": ".+?\\.snowflakecomputing\\.com", + "type": "string" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ContentColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "DataLoadingOption": { + "enum": [ + "JSON_MAPPING", + "VARIANT_CONTENT_MAPPING", + "VARIANT_CONTENT_AND_METADATA_MAPPING" + ], + "type": "string" + }, + "Database": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyPassphrase": { + "maxLength": 255, + "minLength": 7, + "type": "string" + }, + "MetaDataColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "PrivateKey": { + "maxLength": 4096, + "minLength": 256, + "pattern": "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$", + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SnowflakeRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDataOnly", + "AllData" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "Schema": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "SnowflakeRoleConfiguration": { + "$ref": "#/definitions/SnowflakeRoleConfiguration" + }, + "SnowflakeVpcConfiguration": { + "$ref": "#/definitions/SnowflakeVpcConfiguration" + }, + "Table": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "User": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "AccountUrl", + "Database", + "Schema", + "Table", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "SnowflakeRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "SnowflakeRoleConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SnowflakeRole": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "SnowflakeVpcConfiguration": { + "additionalProperties": false, + "properties": { + "PrivateLinkVpceId": { + "maxLength": 255, + "minLength": 47, + "pattern": "([a-zA-Z0-9\\-\\_]+\\.){2,3}vpce\\.[a-zA-Z0-9\\-]*\\.vpce-svc\\-[a-zA-Z0-9\\-]{17}$", + "type": "string" + } + }, + "required": [ + "PrivateLinkVpceId" + ], + "type": "object" + }, + "SplunkBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "SplunkDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/SplunkBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "HECAcknowledgmentTimeoutInSeconds": { + "maximum": 600, + "minimum": 180, + "type": "integer" + }, + "HECEndpoint": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "HECEndpointType": { + "enum": [ + "Raw", + "Event" + ], + "type": "string" + }, + "HECToken": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SplunkRetryOptions" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "HECEndpoint", + "S3Configuration", + "HECEndpointType" + ], + "type": "object" + }, + "SplunkRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "VpcConfiguration": { + "additionalProperties": false, + "properties": { + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/GroupId", + "typeName": "AWS::EC2::SecurityGroup" + }, + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::Subnet" + }, + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "RoleARN", + "SubnetIds", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "firehose:CreateDeliveryStream", + "firehose:DescribeDeliveryStream", + "iam:GetRole", + "iam:PassRole", + "kms:CreateGrant", + "kms:DescribeKey" + ] + }, + "delete": { + "permissions": [ + "firehose:DeleteDeliveryStream", + "firehose:DescribeDeliveryStream", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + }, + "list": { + "permissions": [ + "firehose:ListDeliveryStreams" + ] + }, + "read": { + "permissions": [ + "firehose:DescribeDeliveryStream", + "firehose:ListTagsForDeliveryStream" + ] + }, + "update": { + "permissions": [ + "firehose:UpdateDestination", + "firehose:DescribeDeliveryStream", + "firehose:StartDeliveryStreamEncryption", + "firehose:StopDeliveryStreamEncryption", + "firehose:ListTagsForDeliveryStream", + "firehose:TagDeliveryStream", + "firehose:UntagDeliveryStream", + "kms:CreateGrant", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + } + }, + "primaryIdentifier": [ + "/properties/DeliveryStreamName" + ], + "properties": { + "AmazonOpenSearchServerlessDestinationConfiguration": { + "$ref": "#/definitions/AmazonOpenSearchServerlessDestinationConfiguration" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "$ref": "#/definitions/AmazonopensearchserviceDestinationConfiguration" + }, + "Arn": { + "type": "string" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/DeliveryStreamEncryptionConfigurationInput" + }, + "DeliveryStreamName": { + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9._-]+", + "type": "string" + }, + "DeliveryStreamType": { + "enum": [ + "DirectPut", + "KinesisStreamAsSource", + "MSKAsSource" + ], + "type": "string" + }, + "ElasticsearchDestinationConfiguration": { + "$ref": "#/definitions/ElasticsearchDestinationConfiguration" + }, + "ExtendedS3DestinationConfiguration": { + "$ref": "#/definitions/ExtendedS3DestinationConfiguration" + }, + "HttpEndpointDestinationConfiguration": { + "$ref": "#/definitions/HttpEndpointDestinationConfiguration" + }, + "KinesisStreamSourceConfiguration": { + "$ref": "#/definitions/KinesisStreamSourceConfiguration" + }, + "MSKSourceConfiguration": { + "$ref": "#/definitions/MSKSourceConfiguration" + }, + "RedshiftDestinationConfiguration": { + "$ref": "#/definitions/RedshiftDestinationConfiguration" + }, + "S3DestinationConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SnowflakeDestinationConfiguration": { + "$ref": "#/definitions/SnowflakeDestinationConfiguration" + }, + "SplunkDestinationConfiguration": { + "$ref": "#/definitions/SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "typeName": "AWS::KinesisFirehose::DeliveryStream" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-organizations-organization.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-organizations-organization.json deleted file mode 100644 index 844033a13a..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-organizations-organization.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "additionalProperties": false, - "handlers": { - "create": { - "permissions": [ - "organizations:CreateOrganization", - "organizations:DescribeOrganization", - "iam:CreateServiceLinkedRole", - "organizations:ListRoots" - ] - }, - "delete": { - "permissions": [ - "organizations:DeleteOrganization", - "organizations:DescribeOrganization" - ] - }, - "list": { - "permissions": [ - "organizations:DescribeOrganization" - ] - }, - "read": { - "permissions": [ - "organizations:DescribeOrganization", - "organizations:ListRoots" - ] - }, - "update": { - "permissions": [ - "organizations:DescribeOrganization" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "pattern": "^arn:aws.*:organizations::\\d{12}:organization\\/o-[a-z0-9]{10,32}", - "type": "string" - }, - "FeatureSet": { - "default": "ALL", - "enum": [ - "ALL", - "CONSOLIDATED_BILLING" - ], - "type": "string" - }, - "Id": { - "pattern": "^o-[a-z0-9]{10,32}$", - "type": "string" - }, - "ManagementAccountArn": { - "pattern": "^arn:aws.*:organizations::\\d{12}:account\\/o-[a-z0-9]{10,32}\\/\\d{12}", - "type": "string" - }, - "ManagementAccountEmail": { - "maxLength": 64, - "minLength": 6, - "pattern": "[^\\s@]+@[^\\s@]+\\.[^\\s@]+", - "type": "string" - }, - "ManagementAccountId": { - "pattern": "^\\d{12}$", - "type": "string" - }, - "RootId": { - "maxLength": 64, - "pattern": "^r-[0-9a-z]{4,32}$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn", - "/properties/ManagementAccountArn", - "/properties/ManagementAccountId", - "/properties/ManagementAccountEmail", - "/properties/RootId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-organizations.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::Organizations::Organization" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-rds-integration.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-rds-integration.json new file mode 100644 index 0000000000..8bb00c0dfe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-rds-integration.json @@ -0,0 +1,154 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SourceArn", + "/properties/TargetArn", + "/properties/KMSKeyId", + "/properties/AdditionalEncryptionContext" + ], + "definitions": { + "EncryptionContextMap": { + "additionalProperties": false, + "patternProperties": { + "^[\\s\\S]*$": { + "maxLength": 131072, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "handlers": { + "create": { + "permissions": [ + "rds:CreateIntegration", + "rds:DescribeIntegrations", + "rds:AddTagsToResource", + "kms:CreateGrant", + "kms:DescribeKey", + "redshift:CreateInboundIntegration" + ] + }, + "delete": { + "permissions": [ + "rds:DeleteIntegration", + "rds:DescribeIntegrations" + ] + }, + "list": { + "permissions": [ + "rds:DescribeIntegrations" + ] + }, + "read": { + "permissions": [ + "rds:DescribeIntegrations" + ] + }, + "update": { + "permissions": [ + "rds:DescribeIntegrations", + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource", + "rds:ModifyIntegration" + ] + } + }, + "primaryIdentifier": [ + "/properties/IntegrationArn" + ], + "properties": { + "AdditionalEncryptionContext": { + "$ref": "#/definitions/EncryptionContextMap" + }, + "CreateTime": { + "type": "string" + }, + "DataFilter": { + "maxLength": 25600, + "minLength": 1, + "pattern": "[a-zA-Z0-9_ \"\\\\\\-$,*.:?+\\/]*", + "type": "string" + }, + "Description": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + }, + "IntegrationArn": { + "type": "string" + }, + "IntegrationName": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "KMSKeyId": { + "type": "string" + }, + "SourceArn": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "TargetArn": { + "type": "string" + } + }, + "propertyTransform": { + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/SourceArn": "$lowercase(SourceArn)" + }, + "readOnlyProperties": [ + "/properties/IntegrationArn", + "/properties/CreateTime" + ], + "required": [ + "SourceArn", + "TargetArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-app.json new file mode 100644 index 0000000000..d565ffb835 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-app.json @@ -0,0 +1,210 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/Tags", + "/properties/ResourceSpec" + ], + "definitions": { + "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" + }, + "SageMakerImageArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:DescribeApp" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DescribeApp" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListApps" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeApp", + "sagemaker:DescribeApp" + ] + } + }, + "primaryIdentifier": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName" + ], + "properties": { + "AppArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app/.*", + "type": "string" + }, + "AppName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "RStudioServerPro", + "RSessionGateway", + "Canvas" + ], + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "ResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/AppArn" + ], + "required": [ + "AppName", + "AppType", + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::App", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-domain.json new file mode 100644 index 0000000000..5cd4ea45fa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-domain.json @@ -0,0 +1,831 @@ +{ + "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" + } + }, + "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" + } + }, + "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_2/aws-sagemaker-model.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-model.json new file mode 100644 index 0000000000..ef768bc0ed --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-model.json @@ -0,0 +1,235 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ExecutionRoleArn", + "/properties/EnableNetworkIsolation", + "/properties/InferenceExecutionConfig", + "/properties/PrimaryContainer", + "/properties/ModelName", + "/properties/VpcConfig", + "/properties/Containers" + ], + "definitions": { + "ContainerDefinition": { + "additionalProperties": false, + "properties": { + "ContainerHostname": { + "type": "string" + }, + "Environment": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Image": { + "type": "string" + }, + "ImageConfig": { + "$ref": "#/definitions/ImageConfig" + }, + "InferenceSpecificationName": { + "type": "string" + }, + "Mode": { + "type": "string" + }, + "ModelDataSource": { + "$ref": "#/definitions/ModelDataSource" + }, + "ModelDataUrl": { + "type": "string" + }, + "ModelPackageName": { + "type": "string" + }, + "MultiModelConfig": { + "$ref": "#/definitions/MultiModelConfig" + } + }, + "type": "object" + }, + "ImageConfig": { + "additionalProperties": false, + "properties": { + "RepositoryAccessMode": { + "type": "string" + }, + "RepositoryAuthConfig": { + "$ref": "#/definitions/RepositoryAuthConfig" + } + }, + "required": [ + "RepositoryAccessMode" + ], + "type": "object" + }, + "InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "ModelAccessConfig": { + "additionalProperties": false, + "properties": { + "AcceptEula": { + "type": "boolean" + } + }, + "required": [ + "AcceptEula" + ], + "type": "object" + }, + "ModelDataSource": { + "additionalProperties": false, + "properties": { + "S3DataSource": { + "$ref": "#/definitions/S3DataSource" + } + }, + "required": [ + "S3DataSource" + ], + "type": "object" + }, + "MultiModelConfig": { + "additionalProperties": false, + "properties": { + "ModelCacheSetting": { + "type": "string" + } + }, + "type": "object" + }, + "RepositoryAuthConfig": { + "additionalProperties": false, + "properties": { + "RepositoryCredentialsProviderArn": { + "type": "string" + } + }, + "required": [ + "RepositoryCredentialsProviderArn" + ], + "type": "object" + }, + "S3DataSource": { + "additionalProperties": false, + "properties": { + "CompressionType": { + "type": "string" + }, + "ModelAccessConfig": { + "$ref": "#/definitions/ModelAccessConfig" + }, + "S3DataType": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "S3Uri", + "S3DataType", + "CompressionType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Subnets", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/ContainerDefinition" + }, + "type": "array", + "uniqueItems": false + }, + "EnableNetworkIsolation": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/InferenceExecutionConfig" + }, + "ModelName": { + "type": "string" + }, + "PrimaryContainer": { + "$ref": "#/definitions/ContainerDefinition" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcConfig": { + "$ref": "#/definitions/VpcConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SageMaker::Model" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-space.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-space.json new file mode 100644 index 0000000000..1ad92e7aa4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-space.json @@ -0,0 +1,436 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/SpaceName", + "/properties/SpaceSharingSettings", + "/properties/OwnershipSettings" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "TensorBoard", + "RStudioServerPro", + "RSessionGateway", + "JupyterLab", + "CodeEditor" + ], + "type": "string" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystem": { + "additionalProperties": false, + "properties": { + "EFSFileSystem": { + "$ref": "#/definitions/EFSFileSystem" + } + }, + "type": "object" + }, + "CustomFileSystems": { + "items": { + "$ref": "#/definitions/CustomFileSystem" + }, + "maxItems": 1, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "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" + }, + "EFSFileSystem": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EbsStorageSettings": { + "additionalProperties": false, + "properties": { + "EbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "EbsVolumeSizeInGb" + ], + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "OwnershipSettings": { + "additionalProperties": false, + "properties": { + "OwnerUserProfileName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "required": [ + "OwnerUserProfileName" + ], + "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" + }, + "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" + }, + "SpaceCodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "SpaceJupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "SpaceSettings": { + "additionalProperties": false, + "properties": { + "AppType": { + "$ref": "#/definitions/AppType" + }, + "CodeEditorAppSettings": { + "$ref": "#/definitions/SpaceCodeEditorAppSettings" + }, + "CustomFileSystems": { + "$ref": "#/definitions/CustomFileSystems" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/SpaceJupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/SpaceStorageSettings" + } + }, + "type": "object" + }, + "SpaceSharingSettings": { + "additionalProperties": false, + "properties": { + "SharingType": { + "enum": [ + "Private", + "Shared" + ], + "type": "string" + } + }, + "required": [ + "SharingType" + ], + "type": "object" + }, + "SpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "EbsStorageSettings": { + "$ref": "#/definitions/EbsStorageSettings" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateSpace", + "sagemaker:DescribeSpace" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteSpace", + "sagemaker:DescribeSpace" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListSpaces" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeSpace" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateSpace", + "sagemaker:DescribeSpace" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId", + "/properties/SpaceName" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "OwnershipSettings": { + "$ref": "#/definitions/OwnershipSettings" + }, + "SpaceArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:space/.*", + "type": "string" + }, + "SpaceDisplayName": { + "maxLength": 64, + "pattern": "^(?!\\s*$).+", + "type": "string" + }, + "SpaceName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SpaceSettings": { + "$ref": "#/definitions/SpaceSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + }, + "SpaceSharingSettings": { + "$ref": "#/definitions/SpaceSharingSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/SpaceArn", + "/properties/Url" + ], + "required": [ + "DomainId", + "SpaceName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SageMaker::Space", + "writeOnlyProperties": [ + "/properties/SpaceSettings", + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..c2c0daf9fe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-userprofile.json @@ -0,0 +1,592 @@ +{ + "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" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "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" + }, + "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_2/aws-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-stepfunctions-activity.json deleted file mode 100644 index 7aaf191ed1..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-stepfunctions-activity.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateActivity", - "states:TagResource" - ] - }, - "delete": { - "permissions": [ - "states:DescribeActivity", - "states:DeleteActivity" - ] - }, - "list": { - "permissions": [ - "states:ListActivities" - ] - }, - "read": { - "permissions": [ - "states:DescribeActivity", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:ListTagsForResource", - "states:TagResource", - "states:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::Activity" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-stepfunctions-statemachine.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-stepfunctions-statemachine.json deleted file mode 100644 index c8a1b0f42e..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-stepfunctions-statemachine.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/StateMachineName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StateMachineName", - "/properties/StateMachineType" - ], - "definitions": { - "CloudWatchLogsLogGroup": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Definition": { - "minProperties": 1, - "type": "object" - }, - "DefinitionSubstitutions": { - "additionalProperties": false, - "minProperties": 1, - "patternProperties": { - ".*": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer" - }, - { - "type": "boolean" - } - ] - } - }, - "type": "object" - }, - "LogDestination": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsLogGroup": { - "$ref": "#/definitions/CloudWatchLogsLogGroup" - } - }, - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "Destinations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LogDestination" - }, - "minItems": 1, - "type": "array" - }, - "IncludeExecutionData": { - "type": "boolean" - }, - "Level": { - "enum": [ - "ALL", - "ERROR", - "FATAL", - "OFF" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TracingConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateStateMachine", - "states:DescribeStateMachine", - "states:TagResource", - "iam:PassRole", - "s3:GetObject" - ] - }, - "delete": { - "permissions": [ - "states:DeleteStateMachine", - "states:DescribeStateMachine" - ] - }, - "list": { - "permissions": [ - "states:ListStateMachines" - ] - }, - "read": { - "permissions": [ - "states:DescribeStateMachine", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:UpdateStateMachine", - "states:TagResource", - "states:UntagResource", - "states:ListTagsForResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Definition": { - "$ref": "#/definitions/Definition" - }, - "DefinitionS3Location": { - "$ref": "#/definitions/S3Location" - }, - "DefinitionString": { - "maxLength": 1048576, - "minLength": 1, - "type": "string" - }, - "DefinitionSubstitutions": { - "$ref": "#/definitions/DefinitionSubstitutions" - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "RoleArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineName": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "StateMachineRevisionId": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineType": { - "enum": [ - "STANDARD", - "EXPRESS" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - }, - "TracingConfiguration": { - "$ref": "#/definitions/TracingConfiguration" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/StateMachineRevisionId" - ], - "required": [ - "RoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::StateMachine", - "writeOnlyProperties": [ - "/properties/Definition", - "/properties/DefinitionS3Location", - "/properties/DefinitionSubstitutions" - ] -} 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 0fbb899196..6f44fe9896 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py @@ -751,7 +751,6 @@ "aws-appsync-graphqlschema.json", "aws-appsync-resolver.json", "aws-appsync-sourceapiassociation.json", - "aws-arczonalshift-zonalautoshiftconfiguration.json", "aws-athena-datacatalog.json", "aws-athena-namedquery.json", "aws-athena-preparedstatement.json", @@ -999,7 +998,6 @@ "aws-eventschemas-registrypolicy.json", "aws-eventschemas-schema.json", "aws-fms-notificationchannel.json", - "aws-fms-policy.json", "aws-fms-resourceset.json", "aws-fsx-datarepositoryassociation.json", "aws-fsx-filesystem.json", @@ -1007,7 +1005,6 @@ "aws-fsx-storagevirtualmachine.json", "aws-fsx-volume.json", "aws-globalaccelerator-accelerator.json", - "aws-globalaccelerator-crossaccountattachment.json", "aws-globalaccelerator-endpointgroup.json", "aws-globalaccelerator-listener.json", "aws-glue-classifier.json", @@ -1023,7 +1020,6 @@ "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", @@ -1067,7 +1063,6 @@ "aws-iotwireless-wirelessdevice.json", "aws-kinesis-stream.json", "aws-kinesisanalyticsv2-application.json", - "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", "aws-kms-key.json", "aws-kms-replicakey.json", @@ -1078,6 +1073,7 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", + "aws-lambda-alias.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", "aws-lambda-layerversion.json", @@ -1151,9 +1147,7 @@ "aws-quicksight-vpcconnection.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", - "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", "aws-rds-dbproxy.json", "aws-rds-dbproxyendpoint.json", @@ -1210,10 +1204,8 @@ "aws-s3outposts-bucket.json", "aws-s3outposts-bucketpolicy.json", "aws-s3outposts-endpoint.json", - "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-featuregroup.json", @@ -1221,20 +1213,16 @@ "aws-sagemaker-imageversion.json", "aws-sagemaker-inferencecomponent.json", "aws-sagemaker-mlflowtrackingserver.json", - "aws-sagemaker-model.json", "aws-sagemaker-modelcard.json", "aws-sagemaker-modelpackage.json", "aws-sagemaker-modelpackagegroup.json", "aws-sagemaker-notebookinstance.json", "aws-sagemaker-pipeline.json", "aws-sagemaker-project.json", - "aws-sagemaker-space.json", - "aws-sagemaker-userprofile.json", "aws-sagemaker-workteam.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", @@ -1298,6 +1286,8 @@ "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", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-arczonalshift-zonalautoshiftconfiguration.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-arczonalshift-zonalautoshiftconfiguration.json new file mode 100644 index 0000000000..3bdd4887b2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-arczonalshift-zonalautoshiftconfiguration.json @@ -0,0 +1,169 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "allOf": [ + { + "required": [ + "ResourceIdentifier" + ] + } + ], + "anyOf": [ + { + "required": [ + "ZonalAutoshiftStatus" + ] + }, + { + "required": [ + "PracticeRunConfiguration" + ] + } + ] + } + ], + "createOnlyProperties": [ + "/properties/ResourceIdentifier" + ], + "definitions": { + "ControlCondition": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "maxLength": 1024, + "minLength": 8, + "pattern": "^arn:.*$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/ControlConditionType" + } + }, + "required": [ + "AlarmIdentifier", + "Type" + ], + "type": "object" + }, + "ControlConditionType": { + "enum": [ + "CLOUDWATCH" + ], + "type": "string" + }, + "PracticeRunConfiguration": { + "additionalProperties": false, + "properties": { + "BlockedDates": { + "insertionOrder": false, + "items": { + "maxLength": 10, + "minLength": 10, + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockedWindows": { + "insertionOrder": false, + "items": { + "maxLength": 19, + "minLength": 19, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}-(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockingAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "OutcomeAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "OutcomeAlarms" + ], + "type": "object" + }, + "ZonalAutoshiftStatus": { + "enum": [ + "ENABLED" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "arc-zonal-shift:CreatePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "arc-zonal-shift:DeletePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration" + ] + }, + "list": { + "permissions": [ + "arc-zonal-shift:ListManagedResources" + ] + }, + "read": { + "permissions": [ + "arc-zonal-shift:GetManagedResource" + ] + }, + "update": { + "permissions": [ + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdatePracticeRunConfiguration", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms" + ] + } + }, + "primaryIdentifier": [ + "/properties/ResourceIdentifier" + ], + "properties": { + "PracticeRunConfiguration": { + "$ref": "#/definitions/PracticeRunConfiguration" + }, + "ResourceIdentifier": { + "maxLength": 1024, + "minLength": 8, + "type": "string" + }, + "ZonalAutoshiftStatus": { + "$ref": "#/definitions/ZonalAutoshiftStatus" + } + }, + "tagging": { + "taggable": false + }, + "typeName": "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-fms-policy.json new file mode 100644 index 0000000000..8456d02fd6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-fms-policy.json @@ -0,0 +1,472 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkAclCommonPolicy": { + "additionalProperties": false, + "properties": { + "NetworkAclEntrySet": { + "$ref": "#/definitions/NetworkAclEntrySet" + } + }, + "required": [ + "NetworkAclEntrySet" + ], + "type": "object" + }, + "NetworkAclEntry": { + "additionalProperties": false, + "properties": { + "CidrBlock": { + "pattern": "^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))$", + "type": "string" + }, + "Egress": { + "type": "boolean" + }, + "IcmpTypeCode": { + "additionalProperties": false, + "properties": { + "Code": { + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "Type": { + "maximum": 255, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Code", + "Type" + ], + "type": "object" + }, + "Ipv6CidrBlock": { + "pattern": "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))(/(1[0-2]|[0-9]))?$", + "type": "string" + }, + "PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + }, + "To": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "From", + "To" + ], + "type": "object" + }, + "Protocol": { + "pattern": "^(tcp|udp|icmp|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", + "type": "string" + }, + "RuleAction": { + "enum": [ + "allow", + "deny" + ], + "type": "string" + } + }, + "required": [ + "Egress", + "Protocol", + "RuleAction" + ], + "type": "object" + }, + "NetworkAclEntryList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/NetworkAclEntry" + }, + "type": "array" + }, + "NetworkAclEntrySet": { + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "FirstEntries" + ] + }, + { + "required": [ + "LastEntries" + ] + } + ], + "properties": { + "FirstEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + }, + "ForceRemediateForFirstEntries": { + "type": "boolean" + }, + "ForceRemediateForLastEntries": { + "type": "boolean" + }, + "LastEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + } + }, + "required": [ + "ForceRemediateForFirstEntries", + "ForceRemediateForLastEntries" + ], + "type": "object" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + }, + { + "required": [ + "NetworkAclCommonPolicy" + ] + } + ], + "properties": { + "NetworkAclCommonPolicy": { + "$ref": "#/definitions/NetworkAclCommonPolicy" + }, + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL", + "NETWORK_ACL_COMMON" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-globalaccelerator-crossaccountattachment.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-globalaccelerator-crossaccountattachment.json new file mode 100644 index 0000000000..31881ad480 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-globalaccelerator-crossaccountattachment.json @@ -0,0 +1,123 @@ +{ + "additionalProperties": false, + "definitions": { + "Resource": { + "additionalProperties": false, + "properties": { + "EndpointId": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "EndpointId" + ], + "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": [ + "globalaccelerator:DescribeCrossAccountAttachment", + "globalaccelerator:CreateCrossAccountAttachment", + "globalaccelerator:TagResource" + ] + }, + "delete": { + "permissions": [ + "globalaccelerator:DescribeCrossAccountAttachment", + "globalaccelerator:DeleteCrossAccountAttachment" + ] + }, + "list": { + "permissions": [ + "globalaccelerator:ListCrossAccountAttachments" + ] + }, + "read": { + "permissions": [ + "globalaccelerator:DescribeCrossAccountAttachment" + ] + }, + "update": { + "permissions": [ + "globalaccelerator:UpdateCrossAccountAttachment", + "globalaccelerator:DescribeCrossAccountAttachment", + "globalaccelerator:TagResource", + "globalaccelerator:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AttachmentArn" + ], + "properties": { + "AttachmentArn": { + "type": "string" + }, + "Name": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]{0,64}$", + "type": "string" + }, + "Principals": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Resources": { + "items": { + "$ref": "#/definitions/Resource" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/AttachmentArn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-globalaccelerator", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::GlobalAccelerator::CrossAccountAttachment", + "writeOnlyProperties": [ + "/properties/Resources/*/Region" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-glue-trigger.json new file mode 100644 index 0000000000..974dd89b9f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-glue-trigger.json @@ -0,0 +1,172 @@ +{ + "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/ap_southeast_3/aws-kinesisfirehose-deliverystream.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-kinesisfirehose-deliverystream.json new file mode 100644 index 0000000000..37b2adaff0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-kinesisfirehose-deliverystream.json @@ -0,0 +1,1607 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeliveryStreamName", + "/properties/DeliveryStreamType", + "/properties/ElasticsearchDestinationConfiguration/VpcConfiguration", + "/properties/AmazonopensearchserviceDestinationConfiguration/VpcConfiguration", + "/properties/AmazonOpenSearchServerlessDestinationConfiguration/VpcConfiguration", + "/properties/KinesisStreamSourceConfiguration", + "/properties/MSKSourceConfiguration", + "/properties/SnowflakeDestinationConfiguration/SnowflakeVpcConfiguration" + ], + "definitions": { + "AmazonOpenSearchServerlessBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonOpenSearchServerlessDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonOpenSearchServerlessBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CollectionEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "relationshipRef": { + "propertyPath": "/properties/CollectionEndpoint", + "typeName": "AWS::OpenSearchServerless::Collection" + }, + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonOpenSearchServerlessRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonOpenSearchServerlessRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonopensearchserviceBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonopensearchserviceRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "Connectivity": { + "enum": [ + "PUBLIC", + "PRIVATE" + ], + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "Connectivity" + ], + "type": "object" + }, + "BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": { + "relationshipRef": { + "propertyPath": "/properties/LogGroupName", + "typeName": "AWS::Logs::LogGroup" + }, + "type": "string" + }, + "LogStreamName": { + "relationshipRef": { + "propertyPath": "/properties/LogStreamName", + "typeName": "AWS::Logs::LogStream" + }, + "type": "string" + } + }, + "type": "object" + }, + "CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableColumns": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableName": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/SchemaConfiguration" + } + }, + "type": "object" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + }, + "KeyType": { + "enum": [ + "AWS_OWNED_CMK", + "CUSTOMER_MANAGED_CMK" + ], + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/OpenXJsonSerDe" + } + }, + "type": "object" + }, + "DocumentIdOptions": { + "additionalProperties": false, + "properties": { + "DefaultDocumentIdFormat": { + "enum": [ + "FIREHOSE_DEFAULT", + "NO_DOCUMENT_ID" + ], + "type": "string" + } + }, + "required": [ + "DefaultDocumentIdFormat" + ], + "type": "object" + }, + "DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + } + }, + "type": "object" + }, + "ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/ElasticsearchBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Elasticsearch::Domain" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::OpenSearchService::Domain" + } + } + ], + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/ElasticsearchRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "ElasticsearchRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KMSEncryptionConfig": { + "$ref": "#/definitions/KMSEncryptionConfig" + }, + "NoEncryptionConfig": { + "enum": [ + "NoEncryption" + ], + "type": "string" + } + }, + "type": "object" + }, + "ExtendedS3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "CustomTimeZone": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "DataFormatConversionConfiguration": { + "$ref": "#/definitions/DataFormatConversionConfiguration" + }, + "DynamicPartitioningConfiguration": { + "$ref": "#/definitions/DynamicPartitioningConfiguration" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "FileExtension": { + "maxLength": 128, + "minLength": 0, + "pattern": "^$|\\.[0-9a-z!\\-_.*'()]+", + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "HiveJsonSerDe": { + "additionalProperties": false, + "properties": { + "TimestampFormats": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "HttpEndpointCommonAttribute": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeValue" + ], + "type": "object" + }, + "HttpEndpointConfiguration": { + "additionalProperties": false, + "properties": { + "AccessKey": { + "maxLength": 4096, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Url": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "HttpEndpointDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/HttpEndpointConfiguration" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RequestConfiguration": { + "$ref": "#/definitions/HttpEndpointRequestConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "EndpointConfiguration", + "S3Configuration" + ], + "type": "object" + }, + "HttpEndpointRequestConfiguration": { + "additionalProperties": false, + "properties": { + "CommonAttributes": { + "items": { + "$ref": "#/definitions/HttpEndpointCommonAttribute" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "ContentEncoding": { + "enum": [ + "NONE", + "GZIP" + ], + "type": "string" + } + }, + "type": "object" + }, + "InputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Deserializer": { + "$ref": "#/definitions/Deserializer" + } + }, + "type": "object" + }, + "KMSEncryptionConfig": { + "additionalProperties": false, + "properties": { + "AWSKMSKeyARN": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + } + }, + "required": [ + "AWSKMSKeyARN" + ], + "type": "object" + }, + "KinesisStreamSourceConfiguration": { + "additionalProperties": false, + "properties": { + "KinesisStreamARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "KinesisStreamARN" + ], + "type": "object" + }, + "MSKSourceConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AuthenticationConfiguration" + }, + "MSKClusterARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::MSK::Cluster" + }, + "type": "string" + }, + "TopicName": { + "maxLength": 255, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\._\\-]+", + "type": "string" + } + }, + "required": [ + "MSKClusterARN", + "TopicName", + "AuthenticationConfiguration" + ], + "type": "object" + }, + "OpenXJsonSerDe": { + "additionalProperties": false, + "properties": { + "CaseInsensitive": { + "type": "boolean" + }, + "ColumnToJsonKeyMappings": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ConvertDotsInJsonKeysToUnderscores": { + "type": "boolean" + } + }, + "type": "object" + }, + "OrcSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "BloomFilterColumns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BloomFilterFalsePositiveProbability": { + "type": "number" + }, + "Compression": { + "type": "string" + }, + "DictionaryKeyThreshold": { + "type": "number" + }, + "EnablePadding": { + "type": "boolean" + }, + "FormatVersion": { + "type": "string" + }, + "PaddingTolerance": { + "type": "number" + }, + "RowIndexStride": { + "type": "integer" + }, + "StripeSizeBytes": { + "type": "integer" + } + }, + "type": "object" + }, + "OutputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Serializer": { + "$ref": "#/definitions/Serializer" + } + }, + "type": "object" + }, + "ParquetSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "Compression": { + "type": "string" + }, + "EnableDictionaryCompression": { + "type": "boolean" + }, + "MaxPaddingBytes": { + "type": "integer" + }, + "PageSizeBytes": { + "type": "integer" + }, + "WriterVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Processors": { + "items": { + "$ref": "#/definitions/Processor" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Processor": { + "additionalProperties": false, + "properties": { + "Parameters": { + "items": { + "$ref": "#/definitions/ProcessorParameter" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "enum": [ + "RecordDeAggregation", + "Decompression", + "CloudWatchLogProcessing", + "Lambda", + "MetadataExtraction", + "AppendDelimiterToRecord" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ProcessorParameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Lambda::Function" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Lambda::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "RedshiftDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterJDBCURL": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "CopyCommand": { + "$ref": "#/definitions/CopyCommand" + }, + "Password": { + "maxLength": 512, + "minLength": 6, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RedshiftRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "Username": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "S3Configuration", + "ClusterJDBCURL", + "CopyCommand", + "RoleARN" + ], + "type": "object" + }, + "RedshiftRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "RetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "SchemaConfiguration": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Database" + }, + "type": "string" + }, + "Region": { + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "TableName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Table" + }, + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "SecretsManagerConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecretARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::SecretsManager::Secret" + }, + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Serializer": { + "additionalProperties": false, + "properties": { + "OrcSerDe": { + "$ref": "#/definitions/OrcSerDe" + }, + "ParquetSerDe": { + "$ref": "#/definitions/ParquetSerDe" + } + }, + "type": "object" + }, + "SnowflakeDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "AccountUrl": { + "maxLength": 2048, + "minLength": 24, + "pattern": ".+?\\.snowflakecomputing\\.com", + "type": "string" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ContentColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "DataLoadingOption": { + "enum": [ + "JSON_MAPPING", + "VARIANT_CONTENT_MAPPING", + "VARIANT_CONTENT_AND_METADATA_MAPPING" + ], + "type": "string" + }, + "Database": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyPassphrase": { + "maxLength": 255, + "minLength": 7, + "type": "string" + }, + "MetaDataColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "PrivateKey": { + "maxLength": 4096, + "minLength": 256, + "pattern": "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$", + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SnowflakeRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDataOnly", + "AllData" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "Schema": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "SnowflakeRoleConfiguration": { + "$ref": "#/definitions/SnowflakeRoleConfiguration" + }, + "SnowflakeVpcConfiguration": { + "$ref": "#/definitions/SnowflakeVpcConfiguration" + }, + "Table": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "User": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "AccountUrl", + "Database", + "Schema", + "Table", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "SnowflakeRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "SnowflakeRoleConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SnowflakeRole": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "SnowflakeVpcConfiguration": { + "additionalProperties": false, + "properties": { + "PrivateLinkVpceId": { + "maxLength": 255, + "minLength": 47, + "pattern": "([a-zA-Z0-9\\-\\_]+\\.){2,3}vpce\\.[a-zA-Z0-9\\-]*\\.vpce-svc\\-[a-zA-Z0-9\\-]{17}$", + "type": "string" + } + }, + "required": [ + "PrivateLinkVpceId" + ], + "type": "object" + }, + "SplunkBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "SplunkDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/SplunkBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "HECAcknowledgmentTimeoutInSeconds": { + "maximum": 600, + "minimum": 180, + "type": "integer" + }, + "HECEndpoint": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "HECEndpointType": { + "enum": [ + "Raw", + "Event" + ], + "type": "string" + }, + "HECToken": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SplunkRetryOptions" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "HECEndpoint", + "S3Configuration", + "HECEndpointType" + ], + "type": "object" + }, + "SplunkRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "VpcConfiguration": { + "additionalProperties": false, + "properties": { + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/GroupId", + "typeName": "AWS::EC2::SecurityGroup" + }, + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::Subnet" + }, + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "RoleARN", + "SubnetIds", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "firehose:CreateDeliveryStream", + "firehose:DescribeDeliveryStream", + "iam:GetRole", + "iam:PassRole", + "kms:CreateGrant", + "kms:DescribeKey" + ] + }, + "delete": { + "permissions": [ + "firehose:DeleteDeliveryStream", + "firehose:DescribeDeliveryStream", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + }, + "list": { + "permissions": [ + "firehose:ListDeliveryStreams" + ] + }, + "read": { + "permissions": [ + "firehose:DescribeDeliveryStream", + "firehose:ListTagsForDeliveryStream" + ] + }, + "update": { + "permissions": [ + "firehose:UpdateDestination", + "firehose:DescribeDeliveryStream", + "firehose:StartDeliveryStreamEncryption", + "firehose:StopDeliveryStreamEncryption", + "firehose:ListTagsForDeliveryStream", + "firehose:TagDeliveryStream", + "firehose:UntagDeliveryStream", + "kms:CreateGrant", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + } + }, + "primaryIdentifier": [ + "/properties/DeliveryStreamName" + ], + "properties": { + "AmazonOpenSearchServerlessDestinationConfiguration": { + "$ref": "#/definitions/AmazonOpenSearchServerlessDestinationConfiguration" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "$ref": "#/definitions/AmazonopensearchserviceDestinationConfiguration" + }, + "Arn": { + "type": "string" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/DeliveryStreamEncryptionConfigurationInput" + }, + "DeliveryStreamName": { + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9._-]+", + "type": "string" + }, + "DeliveryStreamType": { + "enum": [ + "DirectPut", + "KinesisStreamAsSource", + "MSKAsSource" + ], + "type": "string" + }, + "ElasticsearchDestinationConfiguration": { + "$ref": "#/definitions/ElasticsearchDestinationConfiguration" + }, + "ExtendedS3DestinationConfiguration": { + "$ref": "#/definitions/ExtendedS3DestinationConfiguration" + }, + "HttpEndpointDestinationConfiguration": { + "$ref": "#/definitions/HttpEndpointDestinationConfiguration" + }, + "KinesisStreamSourceConfiguration": { + "$ref": "#/definitions/KinesisStreamSourceConfiguration" + }, + "MSKSourceConfiguration": { + "$ref": "#/definitions/MSKSourceConfiguration" + }, + "RedshiftDestinationConfiguration": { + "$ref": "#/definitions/RedshiftDestinationConfiguration" + }, + "S3DestinationConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SnowflakeDestinationConfiguration": { + "$ref": "#/definitions/SnowflakeDestinationConfiguration" + }, + "SplunkDestinationConfiguration": { + "$ref": "#/definitions/SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "typeName": "AWS::KinesisFirehose::DeliveryStream" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-lambda-alias.json deleted file mode 100644 index 4a291518b6..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/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/eu_central_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbcluster.json similarity index 99% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-rds-dbcluster.json rename to src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbcluster.json index 6dee021f39..fc8608c49b 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-rds-dbcluster.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbcluster.json @@ -151,7 +151,6 @@ }, "delete": { "permissions": [ - "rds:AddTagsToResource", "rds:CreateDBClusterSnapshot", "rds:DeleteDBCluster", "rds:DeleteDBInstance", diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbinstance.json similarity index 99% rename from src/cfnlint/data/schemas/providers/cn_north_1/aws-rds-dbinstance.json rename to src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbinstance.json index 94f443dbfb..3263d77fb7 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-rds-dbinstance.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbinstance.json @@ -193,7 +193,6 @@ }, "delete": { "permissions": [ - "rds:AddTagsToResource", "rds:CreateDBSnapshot", "rds:DeleteDBInstance", "rds:DescribeDBInstances" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-app.json new file mode 100644 index 0000000000..d565ffb835 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-app.json @@ -0,0 +1,210 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/Tags", + "/properties/ResourceSpec" + ], + "definitions": { + "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" + }, + "SageMakerImageArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:DescribeApp" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DescribeApp" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListApps" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeApp", + "sagemaker:DescribeApp" + ] + } + }, + "primaryIdentifier": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName" + ], + "properties": { + "AppArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app/.*", + "type": "string" + }, + "AppName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "RStudioServerPro", + "RSessionGateway", + "Canvas" + ], + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "ResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/AppArn" + ], + "required": [ + "AppName", + "AppType", + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::App", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-domain.json new file mode 100644 index 0000000000..5cd4ea45fa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-domain.json @@ -0,0 +1,831 @@ +{ + "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" + } + }, + "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" + } + }, + "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_3/aws-sagemaker-model.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-model.json new file mode 100644 index 0000000000..ef768bc0ed --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-model.json @@ -0,0 +1,235 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ExecutionRoleArn", + "/properties/EnableNetworkIsolation", + "/properties/InferenceExecutionConfig", + "/properties/PrimaryContainer", + "/properties/ModelName", + "/properties/VpcConfig", + "/properties/Containers" + ], + "definitions": { + "ContainerDefinition": { + "additionalProperties": false, + "properties": { + "ContainerHostname": { + "type": "string" + }, + "Environment": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Image": { + "type": "string" + }, + "ImageConfig": { + "$ref": "#/definitions/ImageConfig" + }, + "InferenceSpecificationName": { + "type": "string" + }, + "Mode": { + "type": "string" + }, + "ModelDataSource": { + "$ref": "#/definitions/ModelDataSource" + }, + "ModelDataUrl": { + "type": "string" + }, + "ModelPackageName": { + "type": "string" + }, + "MultiModelConfig": { + "$ref": "#/definitions/MultiModelConfig" + } + }, + "type": "object" + }, + "ImageConfig": { + "additionalProperties": false, + "properties": { + "RepositoryAccessMode": { + "type": "string" + }, + "RepositoryAuthConfig": { + "$ref": "#/definitions/RepositoryAuthConfig" + } + }, + "required": [ + "RepositoryAccessMode" + ], + "type": "object" + }, + "InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "ModelAccessConfig": { + "additionalProperties": false, + "properties": { + "AcceptEula": { + "type": "boolean" + } + }, + "required": [ + "AcceptEula" + ], + "type": "object" + }, + "ModelDataSource": { + "additionalProperties": false, + "properties": { + "S3DataSource": { + "$ref": "#/definitions/S3DataSource" + } + }, + "required": [ + "S3DataSource" + ], + "type": "object" + }, + "MultiModelConfig": { + "additionalProperties": false, + "properties": { + "ModelCacheSetting": { + "type": "string" + } + }, + "type": "object" + }, + "RepositoryAuthConfig": { + "additionalProperties": false, + "properties": { + "RepositoryCredentialsProviderArn": { + "type": "string" + } + }, + "required": [ + "RepositoryCredentialsProviderArn" + ], + "type": "object" + }, + "S3DataSource": { + "additionalProperties": false, + "properties": { + "CompressionType": { + "type": "string" + }, + "ModelAccessConfig": { + "$ref": "#/definitions/ModelAccessConfig" + }, + "S3DataType": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "S3Uri", + "S3DataType", + "CompressionType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Subnets", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/ContainerDefinition" + }, + "type": "array", + "uniqueItems": false + }, + "EnableNetworkIsolation": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/InferenceExecutionConfig" + }, + "ModelName": { + "type": "string" + }, + "PrimaryContainer": { + "$ref": "#/definitions/ContainerDefinition" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcConfig": { + "$ref": "#/definitions/VpcConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SageMaker::Model" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-space.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-space.json new file mode 100644 index 0000000000..1ad92e7aa4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-space.json @@ -0,0 +1,436 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/SpaceName", + "/properties/SpaceSharingSettings", + "/properties/OwnershipSettings" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "TensorBoard", + "RStudioServerPro", + "RSessionGateway", + "JupyterLab", + "CodeEditor" + ], + "type": "string" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystem": { + "additionalProperties": false, + "properties": { + "EFSFileSystem": { + "$ref": "#/definitions/EFSFileSystem" + } + }, + "type": "object" + }, + "CustomFileSystems": { + "items": { + "$ref": "#/definitions/CustomFileSystem" + }, + "maxItems": 1, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "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" + }, + "EFSFileSystem": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EbsStorageSettings": { + "additionalProperties": false, + "properties": { + "EbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "EbsVolumeSizeInGb" + ], + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "OwnershipSettings": { + "additionalProperties": false, + "properties": { + "OwnerUserProfileName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "required": [ + "OwnerUserProfileName" + ], + "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" + }, + "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" + }, + "SpaceCodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "SpaceJupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "SpaceSettings": { + "additionalProperties": false, + "properties": { + "AppType": { + "$ref": "#/definitions/AppType" + }, + "CodeEditorAppSettings": { + "$ref": "#/definitions/SpaceCodeEditorAppSettings" + }, + "CustomFileSystems": { + "$ref": "#/definitions/CustomFileSystems" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/SpaceJupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/SpaceStorageSettings" + } + }, + "type": "object" + }, + "SpaceSharingSettings": { + "additionalProperties": false, + "properties": { + "SharingType": { + "enum": [ + "Private", + "Shared" + ], + "type": "string" + } + }, + "required": [ + "SharingType" + ], + "type": "object" + }, + "SpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "EbsStorageSettings": { + "$ref": "#/definitions/EbsStorageSettings" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateSpace", + "sagemaker:DescribeSpace" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteSpace", + "sagemaker:DescribeSpace" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListSpaces" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeSpace" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateSpace", + "sagemaker:DescribeSpace" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId", + "/properties/SpaceName" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "OwnershipSettings": { + "$ref": "#/definitions/OwnershipSettings" + }, + "SpaceArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:space/.*", + "type": "string" + }, + "SpaceDisplayName": { + "maxLength": 64, + "pattern": "^(?!\\s*$).+", + "type": "string" + }, + "SpaceName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SpaceSettings": { + "$ref": "#/definitions/SpaceSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + }, + "SpaceSharingSettings": { + "$ref": "#/definitions/SpaceSharingSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/SpaceArn", + "/properties/Url" + ], + "required": [ + "DomainId", + "SpaceName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SageMaker::Space", + "writeOnlyProperties": [ + "/properties/SpaceSettings", + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..c2c0daf9fe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sagemaker-userprofile.json @@ -0,0 +1,592 @@ +{ + "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" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "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" + }, + "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_3/aws-secretsmanager-resourcepolicy.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-secretsmanager-resourcepolicy.json new file mode 100644 index 0000000000..92fc7be26c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/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_3/aws-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-stepfunctions-activity.json deleted file mode 100644 index 7aaf191ed1..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-stepfunctions-activity.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateActivity", - "states:TagResource" - ] - }, - "delete": { - "permissions": [ - "states:DescribeActivity", - "states:DeleteActivity" - ] - }, - "list": { - "permissions": [ - "states:ListActivities" - ] - }, - "read": { - "permissions": [ - "states:DescribeActivity", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:ListTagsForResource", - "states:TagResource", - "states:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::Activity" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-stepfunctions-statemachine.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-stepfunctions-statemachine.json deleted file mode 100644 index c8a1b0f42e..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-stepfunctions-statemachine.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/StateMachineName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StateMachineName", - "/properties/StateMachineType" - ], - "definitions": { - "CloudWatchLogsLogGroup": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Definition": { - "minProperties": 1, - "type": "object" - }, - "DefinitionSubstitutions": { - "additionalProperties": false, - "minProperties": 1, - "patternProperties": { - ".*": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer" - }, - { - "type": "boolean" - } - ] - } - }, - "type": "object" - }, - "LogDestination": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsLogGroup": { - "$ref": "#/definitions/CloudWatchLogsLogGroup" - } - }, - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "Destinations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LogDestination" - }, - "minItems": 1, - "type": "array" - }, - "IncludeExecutionData": { - "type": "boolean" - }, - "Level": { - "enum": [ - "ALL", - "ERROR", - "FATAL", - "OFF" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TracingConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateStateMachine", - "states:DescribeStateMachine", - "states:TagResource", - "iam:PassRole", - "s3:GetObject" - ] - }, - "delete": { - "permissions": [ - "states:DeleteStateMachine", - "states:DescribeStateMachine" - ] - }, - "list": { - "permissions": [ - "states:ListStateMachines" - ] - }, - "read": { - "permissions": [ - "states:DescribeStateMachine", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:UpdateStateMachine", - "states:TagResource", - "states:UntagResource", - "states:ListTagsForResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Definition": { - "$ref": "#/definitions/Definition" - }, - "DefinitionS3Location": { - "$ref": "#/definitions/S3Location" - }, - "DefinitionString": { - "maxLength": 1048576, - "minLength": 1, - "type": "string" - }, - "DefinitionSubstitutions": { - "$ref": "#/definitions/DefinitionSubstitutions" - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "RoleArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineName": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "StateMachineRevisionId": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineType": { - "enum": [ - "STANDARD", - "EXPRESS" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - }, - "TracingConfiguration": { - "$ref": "#/definitions/TracingConfiguration" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/StateMachineRevisionId" - ], - "required": [ - "RoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::StateMachine", - "writeOnlyProperties": [ - "/properties/Definition", - "/properties/DefinitionS3Location", - "/properties/DefinitionSubstitutions" - ] -} 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 77e757984e..1b0d763699 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py @@ -663,7 +663,6 @@ "aws-appsync-graphqlschema.json", "aws-appsync-resolver.json", "aws-appsync-sourceapiassociation.json", - "aws-arczonalshift-zonalautoshiftconfiguration.json", "aws-athena-datacatalog.json", "aws-athena-namedquery.json", "aws-athena-preparedstatement.json", @@ -806,6 +805,7 @@ "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", + "aws-ec2-trafficmirrorfilterrule.json", "aws-ec2-trafficmirrortarget.json", "aws-ec2-transitgatewayconnect.json", "aws-ec2-transitgatewaymulticastdomain.json", @@ -875,7 +875,6 @@ "aws-events-eventbuspolicy.json", "aws-events-rule.json", "aws-fms-notificationchannel.json", - "aws-fms-policy.json", "aws-fsx-datarepositoryassociation.json", "aws-fsx-filesystem.json", "aws-fsx-snapshot.json", @@ -898,7 +897,6 @@ "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", @@ -933,7 +931,6 @@ "aws-internetmonitor-monitor.json", "aws-kinesis-stream.json", "aws-kinesisanalyticsv2-application.json", - "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", "aws-kms-key.json", "aws-kms-replicakey.json", @@ -944,6 +941,7 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", + "aws-lambda-alias.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", "aws-lambda-function.json", @@ -976,10 +974,8 @@ "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-mediatailor-channel.json", "aws-mediatailor-channelpolicy.json", @@ -1076,7 +1072,6 @@ "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", @@ -1130,6 +1125,8 @@ "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", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-arczonalshift-zonalautoshiftconfiguration.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-arczonalshift-zonalautoshiftconfiguration.json new file mode 100644 index 0000000000..3bdd4887b2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-arczonalshift-zonalautoshiftconfiguration.json @@ -0,0 +1,169 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "allOf": [ + { + "required": [ + "ResourceIdentifier" + ] + } + ], + "anyOf": [ + { + "required": [ + "ZonalAutoshiftStatus" + ] + }, + { + "required": [ + "PracticeRunConfiguration" + ] + } + ] + } + ], + "createOnlyProperties": [ + "/properties/ResourceIdentifier" + ], + "definitions": { + "ControlCondition": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "maxLength": 1024, + "minLength": 8, + "pattern": "^arn:.*$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/ControlConditionType" + } + }, + "required": [ + "AlarmIdentifier", + "Type" + ], + "type": "object" + }, + "ControlConditionType": { + "enum": [ + "CLOUDWATCH" + ], + "type": "string" + }, + "PracticeRunConfiguration": { + "additionalProperties": false, + "properties": { + "BlockedDates": { + "insertionOrder": false, + "items": { + "maxLength": 10, + "minLength": 10, + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockedWindows": { + "insertionOrder": false, + "items": { + "maxLength": 19, + "minLength": 19, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}-(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockingAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "OutcomeAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "OutcomeAlarms" + ], + "type": "object" + }, + "ZonalAutoshiftStatus": { + "enum": [ + "ENABLED" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "arc-zonal-shift:CreatePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "arc-zonal-shift:DeletePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration" + ] + }, + "list": { + "permissions": [ + "arc-zonal-shift:ListManagedResources" + ] + }, + "read": { + "permissions": [ + "arc-zonal-shift:GetManagedResource" + ] + }, + "update": { + "permissions": [ + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdatePracticeRunConfiguration", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms" + ] + } + }, + "primaryIdentifier": [ + "/properties/ResourceIdentifier" + ], + "properties": { + "PracticeRunConfiguration": { + "$ref": "#/definitions/PracticeRunConfiguration" + }, + "ResourceIdentifier": { + "maxLength": 1024, + "minLength": 8, + "type": "string" + }, + "ZonalAutoshiftStatus": { + "$ref": "#/definitions/ZonalAutoshiftStatus" + } + }, + "tagging": { + "taggable": false + }, + "typeName": "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-trafficmirrorfilterrule.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-trafficmirrorfilterrule.json deleted file mode 100644 index 95028d4c8a..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-trafficmirrorfilterrule.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/TrafficMirrorFilterId" - ], - "definitions": { - "TrafficMirrorPortRange": { - "additionalProperties": false, - "properties": { - "FromPort": { - "type": "integer" - }, - "ToPort": { - "type": "integer" - } - }, - "required": [ - "FromPort", - "ToPort" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Description": { - "type": "string" - }, - "DestinationCidrBlock": { - "type": "string" - }, - "DestinationPortRange": { - "$ref": "#/definitions/TrafficMirrorPortRange" - }, - "Id": { - "type": "string" - }, - "Protocol": { - "type": "integer" - }, - "RuleAction": { - "type": "string" - }, - "RuleNumber": { - "type": "integer" - }, - "SourceCidrBlock": { - "type": "string" - }, - "SourcePortRange": { - "$ref": "#/definitions/TrafficMirrorPortRange" - }, - "TrafficDirection": { - "type": "string" - }, - "TrafficMirrorFilterId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "RuleAction", - "SourceCidrBlock", - "RuleNumber", - "DestinationCidrBlock", - "TrafficMirrorFilterId", - "TrafficDirection" - ], - "typeName": "AWS::EC2::TrafficMirrorFilterRule" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-fms-policy.json new file mode 100644 index 0000000000..8456d02fd6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-fms-policy.json @@ -0,0 +1,472 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkAclCommonPolicy": { + "additionalProperties": false, + "properties": { + "NetworkAclEntrySet": { + "$ref": "#/definitions/NetworkAclEntrySet" + } + }, + "required": [ + "NetworkAclEntrySet" + ], + "type": "object" + }, + "NetworkAclEntry": { + "additionalProperties": false, + "properties": { + "CidrBlock": { + "pattern": "^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))$", + "type": "string" + }, + "Egress": { + "type": "boolean" + }, + "IcmpTypeCode": { + "additionalProperties": false, + "properties": { + "Code": { + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "Type": { + "maximum": 255, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Code", + "Type" + ], + "type": "object" + }, + "Ipv6CidrBlock": { + "pattern": "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))(/(1[0-2]|[0-9]))?$", + "type": "string" + }, + "PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + }, + "To": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "From", + "To" + ], + "type": "object" + }, + "Protocol": { + "pattern": "^(tcp|udp|icmp|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", + "type": "string" + }, + "RuleAction": { + "enum": [ + "allow", + "deny" + ], + "type": "string" + } + }, + "required": [ + "Egress", + "Protocol", + "RuleAction" + ], + "type": "object" + }, + "NetworkAclEntryList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/NetworkAclEntry" + }, + "type": "array" + }, + "NetworkAclEntrySet": { + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "FirstEntries" + ] + }, + { + "required": [ + "LastEntries" + ] + } + ], + "properties": { + "FirstEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + }, + "ForceRemediateForFirstEntries": { + "type": "boolean" + }, + "ForceRemediateForLastEntries": { + "type": "boolean" + }, + "LastEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + } + }, + "required": [ + "ForceRemediateForFirstEntries", + "ForceRemediateForLastEntries" + ], + "type": "object" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + }, + { + "required": [ + "NetworkAclCommonPolicy" + ] + } + ], + "properties": { + "NetworkAclCommonPolicy": { + "$ref": "#/definitions/NetworkAclCommonPolicy" + }, + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL", + "NETWORK_ACL_COMMON" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-trigger.json new file mode 100644 index 0000000000..974dd89b9f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-trigger.json @@ -0,0 +1,172 @@ +{ + "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/ap_southeast_4/aws-kinesisfirehose-deliverystream.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-kinesisfirehose-deliverystream.json new file mode 100644 index 0000000000..37b2adaff0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-kinesisfirehose-deliverystream.json @@ -0,0 +1,1607 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeliveryStreamName", + "/properties/DeliveryStreamType", + "/properties/ElasticsearchDestinationConfiguration/VpcConfiguration", + "/properties/AmazonopensearchserviceDestinationConfiguration/VpcConfiguration", + "/properties/AmazonOpenSearchServerlessDestinationConfiguration/VpcConfiguration", + "/properties/KinesisStreamSourceConfiguration", + "/properties/MSKSourceConfiguration", + "/properties/SnowflakeDestinationConfiguration/SnowflakeVpcConfiguration" + ], + "definitions": { + "AmazonOpenSearchServerlessBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonOpenSearchServerlessDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonOpenSearchServerlessBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CollectionEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "relationshipRef": { + "propertyPath": "/properties/CollectionEndpoint", + "typeName": "AWS::OpenSearchServerless::Collection" + }, + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonOpenSearchServerlessRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonOpenSearchServerlessRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonopensearchserviceBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonopensearchserviceRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "Connectivity": { + "enum": [ + "PUBLIC", + "PRIVATE" + ], + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "Connectivity" + ], + "type": "object" + }, + "BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": { + "relationshipRef": { + "propertyPath": "/properties/LogGroupName", + "typeName": "AWS::Logs::LogGroup" + }, + "type": "string" + }, + "LogStreamName": { + "relationshipRef": { + "propertyPath": "/properties/LogStreamName", + "typeName": "AWS::Logs::LogStream" + }, + "type": "string" + } + }, + "type": "object" + }, + "CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableColumns": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableName": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/SchemaConfiguration" + } + }, + "type": "object" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + }, + "KeyType": { + "enum": [ + "AWS_OWNED_CMK", + "CUSTOMER_MANAGED_CMK" + ], + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/OpenXJsonSerDe" + } + }, + "type": "object" + }, + "DocumentIdOptions": { + "additionalProperties": false, + "properties": { + "DefaultDocumentIdFormat": { + "enum": [ + "FIREHOSE_DEFAULT", + "NO_DOCUMENT_ID" + ], + "type": "string" + } + }, + "required": [ + "DefaultDocumentIdFormat" + ], + "type": "object" + }, + "DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + } + }, + "type": "object" + }, + "ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/ElasticsearchBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Elasticsearch::Domain" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::OpenSearchService::Domain" + } + } + ], + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/ElasticsearchRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "ElasticsearchRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KMSEncryptionConfig": { + "$ref": "#/definitions/KMSEncryptionConfig" + }, + "NoEncryptionConfig": { + "enum": [ + "NoEncryption" + ], + "type": "string" + } + }, + "type": "object" + }, + "ExtendedS3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "CustomTimeZone": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "DataFormatConversionConfiguration": { + "$ref": "#/definitions/DataFormatConversionConfiguration" + }, + "DynamicPartitioningConfiguration": { + "$ref": "#/definitions/DynamicPartitioningConfiguration" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "FileExtension": { + "maxLength": 128, + "minLength": 0, + "pattern": "^$|\\.[0-9a-z!\\-_.*'()]+", + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "HiveJsonSerDe": { + "additionalProperties": false, + "properties": { + "TimestampFormats": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "HttpEndpointCommonAttribute": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeValue" + ], + "type": "object" + }, + "HttpEndpointConfiguration": { + "additionalProperties": false, + "properties": { + "AccessKey": { + "maxLength": 4096, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Url": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "HttpEndpointDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/HttpEndpointConfiguration" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RequestConfiguration": { + "$ref": "#/definitions/HttpEndpointRequestConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "EndpointConfiguration", + "S3Configuration" + ], + "type": "object" + }, + "HttpEndpointRequestConfiguration": { + "additionalProperties": false, + "properties": { + "CommonAttributes": { + "items": { + "$ref": "#/definitions/HttpEndpointCommonAttribute" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "ContentEncoding": { + "enum": [ + "NONE", + "GZIP" + ], + "type": "string" + } + }, + "type": "object" + }, + "InputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Deserializer": { + "$ref": "#/definitions/Deserializer" + } + }, + "type": "object" + }, + "KMSEncryptionConfig": { + "additionalProperties": false, + "properties": { + "AWSKMSKeyARN": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + } + }, + "required": [ + "AWSKMSKeyARN" + ], + "type": "object" + }, + "KinesisStreamSourceConfiguration": { + "additionalProperties": false, + "properties": { + "KinesisStreamARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "KinesisStreamARN" + ], + "type": "object" + }, + "MSKSourceConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AuthenticationConfiguration" + }, + "MSKClusterARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::MSK::Cluster" + }, + "type": "string" + }, + "TopicName": { + "maxLength": 255, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\._\\-]+", + "type": "string" + } + }, + "required": [ + "MSKClusterARN", + "TopicName", + "AuthenticationConfiguration" + ], + "type": "object" + }, + "OpenXJsonSerDe": { + "additionalProperties": false, + "properties": { + "CaseInsensitive": { + "type": "boolean" + }, + "ColumnToJsonKeyMappings": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ConvertDotsInJsonKeysToUnderscores": { + "type": "boolean" + } + }, + "type": "object" + }, + "OrcSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "BloomFilterColumns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BloomFilterFalsePositiveProbability": { + "type": "number" + }, + "Compression": { + "type": "string" + }, + "DictionaryKeyThreshold": { + "type": "number" + }, + "EnablePadding": { + "type": "boolean" + }, + "FormatVersion": { + "type": "string" + }, + "PaddingTolerance": { + "type": "number" + }, + "RowIndexStride": { + "type": "integer" + }, + "StripeSizeBytes": { + "type": "integer" + } + }, + "type": "object" + }, + "OutputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Serializer": { + "$ref": "#/definitions/Serializer" + } + }, + "type": "object" + }, + "ParquetSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "Compression": { + "type": "string" + }, + "EnableDictionaryCompression": { + "type": "boolean" + }, + "MaxPaddingBytes": { + "type": "integer" + }, + "PageSizeBytes": { + "type": "integer" + }, + "WriterVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Processors": { + "items": { + "$ref": "#/definitions/Processor" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Processor": { + "additionalProperties": false, + "properties": { + "Parameters": { + "items": { + "$ref": "#/definitions/ProcessorParameter" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "enum": [ + "RecordDeAggregation", + "Decompression", + "CloudWatchLogProcessing", + "Lambda", + "MetadataExtraction", + "AppendDelimiterToRecord" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ProcessorParameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Lambda::Function" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Lambda::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "RedshiftDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterJDBCURL": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "CopyCommand": { + "$ref": "#/definitions/CopyCommand" + }, + "Password": { + "maxLength": 512, + "minLength": 6, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RedshiftRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "Username": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "S3Configuration", + "ClusterJDBCURL", + "CopyCommand", + "RoleARN" + ], + "type": "object" + }, + "RedshiftRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "RetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "SchemaConfiguration": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Database" + }, + "type": "string" + }, + "Region": { + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "TableName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Table" + }, + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "SecretsManagerConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecretARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::SecretsManager::Secret" + }, + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Serializer": { + "additionalProperties": false, + "properties": { + "OrcSerDe": { + "$ref": "#/definitions/OrcSerDe" + }, + "ParquetSerDe": { + "$ref": "#/definitions/ParquetSerDe" + } + }, + "type": "object" + }, + "SnowflakeDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "AccountUrl": { + "maxLength": 2048, + "minLength": 24, + "pattern": ".+?\\.snowflakecomputing\\.com", + "type": "string" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ContentColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "DataLoadingOption": { + "enum": [ + "JSON_MAPPING", + "VARIANT_CONTENT_MAPPING", + "VARIANT_CONTENT_AND_METADATA_MAPPING" + ], + "type": "string" + }, + "Database": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyPassphrase": { + "maxLength": 255, + "minLength": 7, + "type": "string" + }, + "MetaDataColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "PrivateKey": { + "maxLength": 4096, + "minLength": 256, + "pattern": "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$", + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SnowflakeRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDataOnly", + "AllData" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "Schema": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "SnowflakeRoleConfiguration": { + "$ref": "#/definitions/SnowflakeRoleConfiguration" + }, + "SnowflakeVpcConfiguration": { + "$ref": "#/definitions/SnowflakeVpcConfiguration" + }, + "Table": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "User": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "AccountUrl", + "Database", + "Schema", + "Table", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "SnowflakeRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "SnowflakeRoleConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SnowflakeRole": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "SnowflakeVpcConfiguration": { + "additionalProperties": false, + "properties": { + "PrivateLinkVpceId": { + "maxLength": 255, + "minLength": 47, + "pattern": "([a-zA-Z0-9\\-\\_]+\\.){2,3}vpce\\.[a-zA-Z0-9\\-]*\\.vpce-svc\\-[a-zA-Z0-9\\-]{17}$", + "type": "string" + } + }, + "required": [ + "PrivateLinkVpceId" + ], + "type": "object" + }, + "SplunkBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "SplunkDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/SplunkBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "HECAcknowledgmentTimeoutInSeconds": { + "maximum": 600, + "minimum": 180, + "type": "integer" + }, + "HECEndpoint": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "HECEndpointType": { + "enum": [ + "Raw", + "Event" + ], + "type": "string" + }, + "HECToken": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SplunkRetryOptions" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "HECEndpoint", + "S3Configuration", + "HECEndpointType" + ], + "type": "object" + }, + "SplunkRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "VpcConfiguration": { + "additionalProperties": false, + "properties": { + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/GroupId", + "typeName": "AWS::EC2::SecurityGroup" + }, + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::Subnet" + }, + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "RoleARN", + "SubnetIds", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "firehose:CreateDeliveryStream", + "firehose:DescribeDeliveryStream", + "iam:GetRole", + "iam:PassRole", + "kms:CreateGrant", + "kms:DescribeKey" + ] + }, + "delete": { + "permissions": [ + "firehose:DeleteDeliveryStream", + "firehose:DescribeDeliveryStream", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + }, + "list": { + "permissions": [ + "firehose:ListDeliveryStreams" + ] + }, + "read": { + "permissions": [ + "firehose:DescribeDeliveryStream", + "firehose:ListTagsForDeliveryStream" + ] + }, + "update": { + "permissions": [ + "firehose:UpdateDestination", + "firehose:DescribeDeliveryStream", + "firehose:StartDeliveryStreamEncryption", + "firehose:StopDeliveryStreamEncryption", + "firehose:ListTagsForDeliveryStream", + "firehose:TagDeliveryStream", + "firehose:UntagDeliveryStream", + "kms:CreateGrant", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + } + }, + "primaryIdentifier": [ + "/properties/DeliveryStreamName" + ], + "properties": { + "AmazonOpenSearchServerlessDestinationConfiguration": { + "$ref": "#/definitions/AmazonOpenSearchServerlessDestinationConfiguration" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "$ref": "#/definitions/AmazonopensearchserviceDestinationConfiguration" + }, + "Arn": { + "type": "string" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/DeliveryStreamEncryptionConfigurationInput" + }, + "DeliveryStreamName": { + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9._-]+", + "type": "string" + }, + "DeliveryStreamType": { + "enum": [ + "DirectPut", + "KinesisStreamAsSource", + "MSKAsSource" + ], + "type": "string" + }, + "ElasticsearchDestinationConfiguration": { + "$ref": "#/definitions/ElasticsearchDestinationConfiguration" + }, + "ExtendedS3DestinationConfiguration": { + "$ref": "#/definitions/ExtendedS3DestinationConfiguration" + }, + "HttpEndpointDestinationConfiguration": { + "$ref": "#/definitions/HttpEndpointDestinationConfiguration" + }, + "KinesisStreamSourceConfiguration": { + "$ref": "#/definitions/KinesisStreamSourceConfiguration" + }, + "MSKSourceConfiguration": { + "$ref": "#/definitions/MSKSourceConfiguration" + }, + "RedshiftDestinationConfiguration": { + "$ref": "#/definitions/RedshiftDestinationConfiguration" + }, + "S3DestinationConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SnowflakeDestinationConfiguration": { + "$ref": "#/definitions/SnowflakeDestinationConfiguration" + }, + "SplunkDestinationConfiguration": { + "$ref": "#/definitions/SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "typeName": "AWS::KinesisFirehose::DeliveryStream" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-lambda-alias.json deleted file mode 100644 index 4a291518b6..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/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/ap_southeast_4/aws-mediapackagev2-channel.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-mediapackagev2-channel.json new file mode 100644 index 0000000000..ba07c8331c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-mediapackagev2-channel.json @@ -0,0 +1,153 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/ChannelGroupName", + "/properties/ChannelName" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ChannelGroupName", + "/properties/ChannelName" + ], + "definitions": { + "IngestEndpoint": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Url": { + "type": "string" + } + }, + "type": "object" + }, + "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" + }, + "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, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MediaPackageV2::Channel" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-mediapackagev2-originendpoint.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-mediapackagev2-originendpoint.json new file mode 100644 index 0000000000..5f268105a7 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-mediapackagev2-originendpoint.json @@ -0,0 +1,627 @@ +{ + "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" + ], + "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" + }, + "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" + }, + "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" + }, + "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" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediapackagev2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MediaPackageV2::OriginEndpoint" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-secretsmanager-resourcepolicy.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-secretsmanager-resourcepolicy.json new file mode 100644 index 0000000000..92fc7be26c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/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_4/aws-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-stepfunctions-activity.json deleted file mode 100644 index 7aaf191ed1..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-stepfunctions-activity.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateActivity", - "states:TagResource" - ] - }, - "delete": { - "permissions": [ - "states:DescribeActivity", - "states:DeleteActivity" - ] - }, - "list": { - "permissions": [ - "states:ListActivities" - ] - }, - "read": { - "permissions": [ - "states:DescribeActivity", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:ListTagsForResource", - "states:TagResource", - "states:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::Activity" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-stepfunctions-statemachine.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-stepfunctions-statemachine.json deleted file mode 100644 index c8a1b0f42e..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-stepfunctions-statemachine.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/StateMachineName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StateMachineName", - "/properties/StateMachineType" - ], - "definitions": { - "CloudWatchLogsLogGroup": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Definition": { - "minProperties": 1, - "type": "object" - }, - "DefinitionSubstitutions": { - "additionalProperties": false, - "minProperties": 1, - "patternProperties": { - ".*": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer" - }, - { - "type": "boolean" - } - ] - } - }, - "type": "object" - }, - "LogDestination": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsLogGroup": { - "$ref": "#/definitions/CloudWatchLogsLogGroup" - } - }, - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "Destinations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LogDestination" - }, - "minItems": 1, - "type": "array" - }, - "IncludeExecutionData": { - "type": "boolean" - }, - "Level": { - "enum": [ - "ALL", - "ERROR", - "FATAL", - "OFF" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TracingConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateStateMachine", - "states:DescribeStateMachine", - "states:TagResource", - "iam:PassRole", - "s3:GetObject" - ] - }, - "delete": { - "permissions": [ - "states:DeleteStateMachine", - "states:DescribeStateMachine" - ] - }, - "list": { - "permissions": [ - "states:ListStateMachines" - ] - }, - "read": { - "permissions": [ - "states:DescribeStateMachine", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:UpdateStateMachine", - "states:TagResource", - "states:UntagResource", - "states:ListTagsForResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Definition": { - "$ref": "#/definitions/Definition" - }, - "DefinitionS3Location": { - "$ref": "#/definitions/S3Location" - }, - "DefinitionString": { - "maxLength": 1048576, - "minLength": 1, - "type": "string" - }, - "DefinitionSubstitutions": { - "$ref": "#/definitions/DefinitionSubstitutions" - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "RoleArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineName": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "StateMachineRevisionId": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineType": { - "enum": [ - "STANDARD", - "EXPRESS" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - }, - "TracingConfiguration": { - "$ref": "#/definitions/TracingConfiguration" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/StateMachineRevisionId" - ], - "required": [ - "RoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::StateMachine", - "writeOnlyProperties": [ - "/properties/Definition", - "/properties/DefinitionS3Location", - "/properties/DefinitionSubstitutions" - ] -} 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 90945ded9d..77cf04f532 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py @@ -121,8 +121,10 @@ "AWS::Batch::JobDefinition", "AWS::Batch::JobQueue", "AWS::Batch::SchedulingPolicy", + "AWS::Bedrock::DataSource", "AWS::Bedrock::Guardrail", "AWS::Bedrock::GuardrailVersion", + "AWS::Bedrock::KnowledgeBase", "AWS::Budgets::Budget", "AWS::Budgets::BudgetsAction", "AWS::CDK::Metadata", @@ -1178,7 +1180,6 @@ "aws-appsync-graphqlschema.json", "aws-appsync-resolver.json", "aws-appsync-sourceapiassociation.json", - "aws-arczonalshift-zonalautoshiftconfiguration.json", "aws-athena-datacatalog.json", "aws-athena-namedquery.json", "aws-athena-preparedstatement.json", @@ -1200,11 +1201,12 @@ "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-datasource.json", "aws-bedrock-guardrail.json", "aws-bedrock-guardrailversion.json", + "aws-bedrock-knowledgebase.json", "aws-budgets-budget.json", "aws-budgets-budgetsaction.json", "aws-cassandra-keyspace.json", @@ -1541,7 +1543,6 @@ "aws-fis-experimenttemplate.json", "aws-fis-targetaccountconfiguration.json", "aws-fms-notificationchannel.json", - "aws-fms-policy.json", "aws-fms-resourceset.json", "aws-fsx-datarepositoryassociation.json", "aws-fsx-filesystem.json", @@ -1578,7 +1579,6 @@ "aws-glue-schemaversionmetadata.json", "aws-glue-securityconfiguration.json", "aws-glue-table.json", - "aws-glue-trigger.json", "aws-glue-workflow.json", "aws-greengrassv2-componentversion.json", "aws-greengrassv2-deployment.json", @@ -1669,7 +1669,6 @@ "aws-kinesisanalytics-applicationoutput.json", "aws-kinesisanalyticsv2-application.json", "aws-kinesisanalyticsv2-applicationoutput.json", - "aws-kinesisfirehose-deliverystream.json", "aws-kinesisvideo-signalingchannel.json", "aws-kinesisvideo-stream.json", "aws-kms-alias.json", @@ -1682,6 +1681,7 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", + "aws-lambda-alias.json", "aws-lambda-codesigningconfig.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", @@ -1882,7 +1882,6 @@ "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", "aws-rds-globalcluster.json", - "aws-rds-integration.json", "aws-rds-optiongroup.json", "aws-redshift-cluster.json", "aws-redshift-clusterparametergroup.json", @@ -1947,11 +1946,9 @@ "aws-s3outposts-bucket.json", "aws-s3outposts-bucketpolicy.json", "aws-s3outposts-endpoint.json", - "aws-sagemaker-app.json", "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", @@ -1960,7 +1957,6 @@ "aws-sagemaker-inferencecomponent.json", "aws-sagemaker-inferenceexperiment.json", "aws-sagemaker-mlflowtrackingserver.json", - "aws-sagemaker-model.json", "aws-sagemaker-modelbiasjobdefinition.json", "aws-sagemaker-modelcard.json", "aws-sagemaker-modelexplainabilityjobdefinition.json", @@ -1972,13 +1968,10 @@ "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-sagemaker-pipeline.json", "aws-sagemaker-project.json", - "aws-sagemaker-space.json", - "aws-sagemaker-userprofile.json", "aws-sagemaker-workteam.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-secretsmanager-secrettargetattachment.json", diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-arczonalshift-zonalautoshiftconfiguration.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-arczonalshift-zonalautoshiftconfiguration.json new file mode 100644 index 0000000000..3bdd4887b2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-arczonalshift-zonalautoshiftconfiguration.json @@ -0,0 +1,169 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "allOf": [ + { + "required": [ + "ResourceIdentifier" + ] + } + ], + "anyOf": [ + { + "required": [ + "ZonalAutoshiftStatus" + ] + }, + { + "required": [ + "PracticeRunConfiguration" + ] + } + ] + } + ], + "createOnlyProperties": [ + "/properties/ResourceIdentifier" + ], + "definitions": { + "ControlCondition": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "maxLength": 1024, + "minLength": 8, + "pattern": "^arn:.*$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/ControlConditionType" + } + }, + "required": [ + "AlarmIdentifier", + "Type" + ], + "type": "object" + }, + "ControlConditionType": { + "enum": [ + "CLOUDWATCH" + ], + "type": "string" + }, + "PracticeRunConfiguration": { + "additionalProperties": false, + "properties": { + "BlockedDates": { + "insertionOrder": false, + "items": { + "maxLength": 10, + "minLength": 10, + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockedWindows": { + "insertionOrder": false, + "items": { + "maxLength": 19, + "minLength": 19, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}-(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockingAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "OutcomeAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "OutcomeAlarms" + ], + "type": "object" + }, + "ZonalAutoshiftStatus": { + "enum": [ + "ENABLED" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "arc-zonal-shift:CreatePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "arc-zonal-shift:DeletePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration" + ] + }, + "list": { + "permissions": [ + "arc-zonal-shift:ListManagedResources" + ] + }, + "read": { + "permissions": [ + "arc-zonal-shift:GetManagedResource" + ] + }, + "update": { + "permissions": [ + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdatePracticeRunConfiguration", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms" + ] + } + }, + "primaryIdentifier": [ + "/properties/ResourceIdentifier" + ], + "properties": { + "PracticeRunConfiguration": { + "$ref": "#/definitions/PracticeRunConfiguration" + }, + "ResourceIdentifier": { + "maxLength": 1024, + "minLength": 8, + "type": "string" + }, + "ZonalAutoshiftStatus": { + "$ref": "#/definitions/ZonalAutoshiftStatus" + } + }, + "tagging": { + "taggable": false + }, + "typeName": "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-batch-jobdefinition.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-batch-jobdefinition.json new file mode 100644 index 0000000000..2d82031cd0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-batch-jobdefinition.json @@ -0,0 +1,992 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tags", + "/properties/JobDefinitionName" + ], + "definitions": { + "AuthorizationConfig": { + "additionalProperties": false, + "properties": { + "AccessPointId": { + "type": "string" + }, + "Iam": { + "type": "string" + } + }, + "type": "object" + }, + "ContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "FargatePlatformConfiguration": { + "$ref": "#/definitions/FargatePlatformConfiguration" + }, + "Image": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "JobRoleArn": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Memory": { + "type": "integer" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + }, + "Vcpus": { + "type": "integer" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Device": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "HostPath": { + "type": "string" + }, + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EcsProperties": { + "additionalProperties": false, + "properties": { + "TaskProperties": { + "items": { + "$ref": "#/definitions/EcsTaskProperties" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "TaskProperties" + ], + "type": "object" + }, + "EcsTaskProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "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": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EfsVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "AuthorizationConfig": { + "$ref": "#/definitions/AuthorizationConfig" + }, + "FileSystemId": { + "type": "string" + }, + "RootDirectory": { + "type": "string" + }, + "TransitEncryption": { + "type": "string" + }, + "TransitEncryptionPort": { + "type": "integer" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EksContainer": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Env": { + "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": { + "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": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Requests": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "type": "object" + }, + "EksContainerSecurityContext": { + "additionalProperties": false, + "properties": { + "AllowPrivilegeEscalation": { + "type": "boolean" + }, + "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" + }, + "EksProperties": { + "additionalProperties": false, + "properties": { + "PodProperties": { + "$ref": "#/definitions/PodProperties" + } + }, + "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" + }, + "FargatePlatformConfiguration": { + "additionalProperties": false, + "properties": { + "PlatformVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ImagePullSecret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "LinuxParameters": { + "additionalProperties": false, + "properties": { + "Devices": { + "items": { + "$ref": "#/definitions/Device" + }, + "type": "array", + "uniqueItems": false + }, + "InitProcessEnabled": { + "type": "boolean" + }, + "MaxSwap": { + "type": "integer" + }, + "SharedMemorySize": { + "type": "integer" + }, + "Swappiness": { + "type": "integer" + }, + "Tmpfs": { + "items": { + "$ref": "#/definitions/Tmpfs" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "SecretOptions": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "Metadata": { + "additionalProperties": false, + "properties": { + "Labels": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "type": "object" + }, + "MountPoints": { + "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": { + "items": { + "$ref": "#/definitions/NodeRangeProperty" + }, + "type": "array", + "uniqueItems": false + }, + "NumNodes": { + "type": "integer" + } + }, + "required": [ + "MainNode", + "NodeRangeProperties", + "NumNodes" + ], + "type": "object" + }, + "NodeRangeProperty": { + "additionalProperties": false, + "properties": { + "Container": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "TargetNodes": { + "type": "string" + } + }, + "required": [ + "TargetNodes" + ], + "type": "object" + }, + "PodProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "DnsPolicy": { + "type": "string" + }, + "HostNetwork": { + "type": "boolean" + }, + "ImagePullSecrets": { + "items": { + "$ref": "#/definitions/ImagePullSecret" + }, + "type": "array", + "uniqueItems": false + }, + "InitContainers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "Metadata": { + "$ref": "#/definitions/Metadata" + }, + "ServiceAccountName": { + "type": "string" + }, + "ShareProcessNamespace": { + "type": "boolean" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/EksVolume" + }, + "type": "array", + "uniqueItems": false + } + }, + "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": { + "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": [ + "ValueFrom", + "Name" + ], + "type": "object" + }, + "TaskContainerDependency": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "ContainerName": { + "type": "string" + } + }, + "required": [ + "Condition", + "ContainerName" + ], + "type": "object" + }, + "TaskContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "DependsOn": { + "items": { + "$ref": "#/definitions/TaskContainerDependency" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "Essential": { + "type": "boolean" + }, + "Image": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "Name": { + "type": "string" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Timeout": { + "additionalProperties": false, + "properties": { + "AttemptDurationSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tmpfs": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "MountOptions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Size": { + "type": "integer" + } + }, + "required": [ + "Size", + "ContainerPath" + ], + "type": "object" + }, + "Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "integer" + } + }, + "required": [ + "SoftLimit", + "HardLimit", + "Name" + ], + "type": "object" + }, + "Volumes": { + "additionalProperties": false, + "properties": { + "EfsVolumeConfiguration": { + "$ref": "#/definitions/EfsVolumeConfiguration" + }, + "Host": { + "$ref": "#/definitions/VolumesHost" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "VolumesHost": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContainerProperties": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "EksProperties": { + "$ref": "#/definitions/EksProperties" + }, + "Id": { + "type": "string" + }, + "JobDefinitionName": { + "type": "string" + }, + "NodeProperties": { + "$ref": "#/definitions/NodeProperties" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "PlatformCapabilities": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "PropagateTags": { + "type": "boolean" + }, + "RetryStrategy": { + "$ref": "#/definitions/RetryStrategy" + }, + "SchedulingPriority": { + "type": "integer" + }, + "Tags": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Timeout": { + "$ref": "#/definitions/Timeout" + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type" + ], + "typeName": "AWS::Batch::JobDefinition" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-fms-policy.json new file mode 100644 index 0000000000..8456d02fd6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-fms-policy.json @@ -0,0 +1,472 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkAclCommonPolicy": { + "additionalProperties": false, + "properties": { + "NetworkAclEntrySet": { + "$ref": "#/definitions/NetworkAclEntrySet" + } + }, + "required": [ + "NetworkAclEntrySet" + ], + "type": "object" + }, + "NetworkAclEntry": { + "additionalProperties": false, + "properties": { + "CidrBlock": { + "pattern": "^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))$", + "type": "string" + }, + "Egress": { + "type": "boolean" + }, + "IcmpTypeCode": { + "additionalProperties": false, + "properties": { + "Code": { + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "Type": { + "maximum": 255, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Code", + "Type" + ], + "type": "object" + }, + "Ipv6CidrBlock": { + "pattern": "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))(/(1[0-2]|[0-9]))?$", + "type": "string" + }, + "PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + }, + "To": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "From", + "To" + ], + "type": "object" + }, + "Protocol": { + "pattern": "^(tcp|udp|icmp|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", + "type": "string" + }, + "RuleAction": { + "enum": [ + "allow", + "deny" + ], + "type": "string" + } + }, + "required": [ + "Egress", + "Protocol", + "RuleAction" + ], + "type": "object" + }, + "NetworkAclEntryList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/NetworkAclEntry" + }, + "type": "array" + }, + "NetworkAclEntrySet": { + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "FirstEntries" + ] + }, + { + "required": [ + "LastEntries" + ] + } + ], + "properties": { + "FirstEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + }, + "ForceRemediateForFirstEntries": { + "type": "boolean" + }, + "ForceRemediateForLastEntries": { + "type": "boolean" + }, + "LastEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + } + }, + "required": [ + "ForceRemediateForFirstEntries", + "ForceRemediateForLastEntries" + ], + "type": "object" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + }, + { + "required": [ + "NetworkAclCommonPolicy" + ] + } + ], + "properties": { + "NetworkAclCommonPolicy": { + "$ref": "#/definitions/NetworkAclCommonPolicy" + }, + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL", + "NETWORK_ACL_COMMON" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-trigger.json new file mode 100644 index 0000000000..974dd89b9f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-trigger.json @@ -0,0 +1,172 @@ +{ + "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_central_1/aws-kinesisfirehose-deliverystream.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-kinesisfirehose-deliverystream.json new file mode 100644 index 0000000000..37b2adaff0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-kinesisfirehose-deliverystream.json @@ -0,0 +1,1607 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeliveryStreamName", + "/properties/DeliveryStreamType", + "/properties/ElasticsearchDestinationConfiguration/VpcConfiguration", + "/properties/AmazonopensearchserviceDestinationConfiguration/VpcConfiguration", + "/properties/AmazonOpenSearchServerlessDestinationConfiguration/VpcConfiguration", + "/properties/KinesisStreamSourceConfiguration", + "/properties/MSKSourceConfiguration", + "/properties/SnowflakeDestinationConfiguration/SnowflakeVpcConfiguration" + ], + "definitions": { + "AmazonOpenSearchServerlessBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonOpenSearchServerlessDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonOpenSearchServerlessBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CollectionEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "relationshipRef": { + "propertyPath": "/properties/CollectionEndpoint", + "typeName": "AWS::OpenSearchServerless::Collection" + }, + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonOpenSearchServerlessRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonOpenSearchServerlessRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonopensearchserviceBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonopensearchserviceRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "Connectivity": { + "enum": [ + "PUBLIC", + "PRIVATE" + ], + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "Connectivity" + ], + "type": "object" + }, + "BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": { + "relationshipRef": { + "propertyPath": "/properties/LogGroupName", + "typeName": "AWS::Logs::LogGroup" + }, + "type": "string" + }, + "LogStreamName": { + "relationshipRef": { + "propertyPath": "/properties/LogStreamName", + "typeName": "AWS::Logs::LogStream" + }, + "type": "string" + } + }, + "type": "object" + }, + "CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableColumns": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableName": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/SchemaConfiguration" + } + }, + "type": "object" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + }, + "KeyType": { + "enum": [ + "AWS_OWNED_CMK", + "CUSTOMER_MANAGED_CMK" + ], + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/OpenXJsonSerDe" + } + }, + "type": "object" + }, + "DocumentIdOptions": { + "additionalProperties": false, + "properties": { + "DefaultDocumentIdFormat": { + "enum": [ + "FIREHOSE_DEFAULT", + "NO_DOCUMENT_ID" + ], + "type": "string" + } + }, + "required": [ + "DefaultDocumentIdFormat" + ], + "type": "object" + }, + "DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + } + }, + "type": "object" + }, + "ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/ElasticsearchBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Elasticsearch::Domain" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::OpenSearchService::Domain" + } + } + ], + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/ElasticsearchRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "ElasticsearchRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KMSEncryptionConfig": { + "$ref": "#/definitions/KMSEncryptionConfig" + }, + "NoEncryptionConfig": { + "enum": [ + "NoEncryption" + ], + "type": "string" + } + }, + "type": "object" + }, + "ExtendedS3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "CustomTimeZone": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "DataFormatConversionConfiguration": { + "$ref": "#/definitions/DataFormatConversionConfiguration" + }, + "DynamicPartitioningConfiguration": { + "$ref": "#/definitions/DynamicPartitioningConfiguration" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "FileExtension": { + "maxLength": 128, + "minLength": 0, + "pattern": "^$|\\.[0-9a-z!\\-_.*'()]+", + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "HiveJsonSerDe": { + "additionalProperties": false, + "properties": { + "TimestampFormats": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "HttpEndpointCommonAttribute": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeValue" + ], + "type": "object" + }, + "HttpEndpointConfiguration": { + "additionalProperties": false, + "properties": { + "AccessKey": { + "maxLength": 4096, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Url": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "HttpEndpointDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/HttpEndpointConfiguration" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RequestConfiguration": { + "$ref": "#/definitions/HttpEndpointRequestConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "EndpointConfiguration", + "S3Configuration" + ], + "type": "object" + }, + "HttpEndpointRequestConfiguration": { + "additionalProperties": false, + "properties": { + "CommonAttributes": { + "items": { + "$ref": "#/definitions/HttpEndpointCommonAttribute" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "ContentEncoding": { + "enum": [ + "NONE", + "GZIP" + ], + "type": "string" + } + }, + "type": "object" + }, + "InputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Deserializer": { + "$ref": "#/definitions/Deserializer" + } + }, + "type": "object" + }, + "KMSEncryptionConfig": { + "additionalProperties": false, + "properties": { + "AWSKMSKeyARN": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + } + }, + "required": [ + "AWSKMSKeyARN" + ], + "type": "object" + }, + "KinesisStreamSourceConfiguration": { + "additionalProperties": false, + "properties": { + "KinesisStreamARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "KinesisStreamARN" + ], + "type": "object" + }, + "MSKSourceConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AuthenticationConfiguration" + }, + "MSKClusterARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::MSK::Cluster" + }, + "type": "string" + }, + "TopicName": { + "maxLength": 255, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\._\\-]+", + "type": "string" + } + }, + "required": [ + "MSKClusterARN", + "TopicName", + "AuthenticationConfiguration" + ], + "type": "object" + }, + "OpenXJsonSerDe": { + "additionalProperties": false, + "properties": { + "CaseInsensitive": { + "type": "boolean" + }, + "ColumnToJsonKeyMappings": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ConvertDotsInJsonKeysToUnderscores": { + "type": "boolean" + } + }, + "type": "object" + }, + "OrcSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "BloomFilterColumns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BloomFilterFalsePositiveProbability": { + "type": "number" + }, + "Compression": { + "type": "string" + }, + "DictionaryKeyThreshold": { + "type": "number" + }, + "EnablePadding": { + "type": "boolean" + }, + "FormatVersion": { + "type": "string" + }, + "PaddingTolerance": { + "type": "number" + }, + "RowIndexStride": { + "type": "integer" + }, + "StripeSizeBytes": { + "type": "integer" + } + }, + "type": "object" + }, + "OutputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Serializer": { + "$ref": "#/definitions/Serializer" + } + }, + "type": "object" + }, + "ParquetSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "Compression": { + "type": "string" + }, + "EnableDictionaryCompression": { + "type": "boolean" + }, + "MaxPaddingBytes": { + "type": "integer" + }, + "PageSizeBytes": { + "type": "integer" + }, + "WriterVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Processors": { + "items": { + "$ref": "#/definitions/Processor" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Processor": { + "additionalProperties": false, + "properties": { + "Parameters": { + "items": { + "$ref": "#/definitions/ProcessorParameter" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "enum": [ + "RecordDeAggregation", + "Decompression", + "CloudWatchLogProcessing", + "Lambda", + "MetadataExtraction", + "AppendDelimiterToRecord" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ProcessorParameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Lambda::Function" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Lambda::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "RedshiftDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterJDBCURL": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "CopyCommand": { + "$ref": "#/definitions/CopyCommand" + }, + "Password": { + "maxLength": 512, + "minLength": 6, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RedshiftRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "Username": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "S3Configuration", + "ClusterJDBCURL", + "CopyCommand", + "RoleARN" + ], + "type": "object" + }, + "RedshiftRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "RetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "SchemaConfiguration": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Database" + }, + "type": "string" + }, + "Region": { + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "TableName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Table" + }, + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "SecretsManagerConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecretARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::SecretsManager::Secret" + }, + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Serializer": { + "additionalProperties": false, + "properties": { + "OrcSerDe": { + "$ref": "#/definitions/OrcSerDe" + }, + "ParquetSerDe": { + "$ref": "#/definitions/ParquetSerDe" + } + }, + "type": "object" + }, + "SnowflakeDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "AccountUrl": { + "maxLength": 2048, + "minLength": 24, + "pattern": ".+?\\.snowflakecomputing\\.com", + "type": "string" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ContentColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "DataLoadingOption": { + "enum": [ + "JSON_MAPPING", + "VARIANT_CONTENT_MAPPING", + "VARIANT_CONTENT_AND_METADATA_MAPPING" + ], + "type": "string" + }, + "Database": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyPassphrase": { + "maxLength": 255, + "minLength": 7, + "type": "string" + }, + "MetaDataColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "PrivateKey": { + "maxLength": 4096, + "minLength": 256, + "pattern": "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$", + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SnowflakeRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDataOnly", + "AllData" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "Schema": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "SnowflakeRoleConfiguration": { + "$ref": "#/definitions/SnowflakeRoleConfiguration" + }, + "SnowflakeVpcConfiguration": { + "$ref": "#/definitions/SnowflakeVpcConfiguration" + }, + "Table": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "User": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "AccountUrl", + "Database", + "Schema", + "Table", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "SnowflakeRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "SnowflakeRoleConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SnowflakeRole": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "SnowflakeVpcConfiguration": { + "additionalProperties": false, + "properties": { + "PrivateLinkVpceId": { + "maxLength": 255, + "minLength": 47, + "pattern": "([a-zA-Z0-9\\-\\_]+\\.){2,3}vpce\\.[a-zA-Z0-9\\-]*\\.vpce-svc\\-[a-zA-Z0-9\\-]{17}$", + "type": "string" + } + }, + "required": [ + "PrivateLinkVpceId" + ], + "type": "object" + }, + "SplunkBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "SplunkDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/SplunkBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "HECAcknowledgmentTimeoutInSeconds": { + "maximum": 600, + "minimum": 180, + "type": "integer" + }, + "HECEndpoint": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "HECEndpointType": { + "enum": [ + "Raw", + "Event" + ], + "type": "string" + }, + "HECToken": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SplunkRetryOptions" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "HECEndpoint", + "S3Configuration", + "HECEndpointType" + ], + "type": "object" + }, + "SplunkRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "VpcConfiguration": { + "additionalProperties": false, + "properties": { + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/GroupId", + "typeName": "AWS::EC2::SecurityGroup" + }, + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::Subnet" + }, + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "RoleARN", + "SubnetIds", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "firehose:CreateDeliveryStream", + "firehose:DescribeDeliveryStream", + "iam:GetRole", + "iam:PassRole", + "kms:CreateGrant", + "kms:DescribeKey" + ] + }, + "delete": { + "permissions": [ + "firehose:DeleteDeliveryStream", + "firehose:DescribeDeliveryStream", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + }, + "list": { + "permissions": [ + "firehose:ListDeliveryStreams" + ] + }, + "read": { + "permissions": [ + "firehose:DescribeDeliveryStream", + "firehose:ListTagsForDeliveryStream" + ] + }, + "update": { + "permissions": [ + "firehose:UpdateDestination", + "firehose:DescribeDeliveryStream", + "firehose:StartDeliveryStreamEncryption", + "firehose:StopDeliveryStreamEncryption", + "firehose:ListTagsForDeliveryStream", + "firehose:TagDeliveryStream", + "firehose:UntagDeliveryStream", + "kms:CreateGrant", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + } + }, + "primaryIdentifier": [ + "/properties/DeliveryStreamName" + ], + "properties": { + "AmazonOpenSearchServerlessDestinationConfiguration": { + "$ref": "#/definitions/AmazonOpenSearchServerlessDestinationConfiguration" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "$ref": "#/definitions/AmazonopensearchserviceDestinationConfiguration" + }, + "Arn": { + "type": "string" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/DeliveryStreamEncryptionConfigurationInput" + }, + "DeliveryStreamName": { + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9._-]+", + "type": "string" + }, + "DeliveryStreamType": { + "enum": [ + "DirectPut", + "KinesisStreamAsSource", + "MSKAsSource" + ], + "type": "string" + }, + "ElasticsearchDestinationConfiguration": { + "$ref": "#/definitions/ElasticsearchDestinationConfiguration" + }, + "ExtendedS3DestinationConfiguration": { + "$ref": "#/definitions/ExtendedS3DestinationConfiguration" + }, + "HttpEndpointDestinationConfiguration": { + "$ref": "#/definitions/HttpEndpointDestinationConfiguration" + }, + "KinesisStreamSourceConfiguration": { + "$ref": "#/definitions/KinesisStreamSourceConfiguration" + }, + "MSKSourceConfiguration": { + "$ref": "#/definitions/MSKSourceConfiguration" + }, + "RedshiftDestinationConfiguration": { + "$ref": "#/definitions/RedshiftDestinationConfiguration" + }, + "S3DestinationConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SnowflakeDestinationConfiguration": { + "$ref": "#/definitions/SnowflakeDestinationConfiguration" + }, + "SplunkDestinationConfiguration": { + "$ref": "#/definitions/SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "typeName": "AWS::KinesisFirehose::DeliveryStream" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-lambda-alias.json deleted file mode 100644 index 4a291518b6..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_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/ca_central_1/aws-rds-integration.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-rds-integration.json new file mode 100644 index 0000000000..8bb00c0dfe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-rds-integration.json @@ -0,0 +1,154 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SourceArn", + "/properties/TargetArn", + "/properties/KMSKeyId", + "/properties/AdditionalEncryptionContext" + ], + "definitions": { + "EncryptionContextMap": { + "additionalProperties": false, + "patternProperties": { + "^[\\s\\S]*$": { + "maxLength": 131072, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "handlers": { + "create": { + "permissions": [ + "rds:CreateIntegration", + "rds:DescribeIntegrations", + "rds:AddTagsToResource", + "kms:CreateGrant", + "kms:DescribeKey", + "redshift:CreateInboundIntegration" + ] + }, + "delete": { + "permissions": [ + "rds:DeleteIntegration", + "rds:DescribeIntegrations" + ] + }, + "list": { + "permissions": [ + "rds:DescribeIntegrations" + ] + }, + "read": { + "permissions": [ + "rds:DescribeIntegrations" + ] + }, + "update": { + "permissions": [ + "rds:DescribeIntegrations", + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource", + "rds:ModifyIntegration" + ] + } + }, + "primaryIdentifier": [ + "/properties/IntegrationArn" + ], + "properties": { + "AdditionalEncryptionContext": { + "$ref": "#/definitions/EncryptionContextMap" + }, + "CreateTime": { + "type": "string" + }, + "DataFilter": { + "maxLength": 25600, + "minLength": 1, + "pattern": "[a-zA-Z0-9_ \"\\\\\\-$,*.:?+\\/]*", + "type": "string" + }, + "Description": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + }, + "IntegrationArn": { + "type": "string" + }, + "IntegrationName": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "KMSKeyId": { + "type": "string" + }, + "SourceArn": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "TargetArn": { + "type": "string" + } + }, + "propertyTransform": { + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/SourceArn": "$lowercase(SourceArn)" + }, + "readOnlyProperties": [ + "/properties/IntegrationArn", + "/properties/CreateTime" + ], + "required": [ + "SourceArn", + "TargetArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-app.json new file mode 100644 index 0000000000..d565ffb835 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-app.json @@ -0,0 +1,210 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/Tags", + "/properties/ResourceSpec" + ], + "definitions": { + "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" + }, + "SageMakerImageArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:DescribeApp" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DescribeApp" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListApps" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeApp", + "sagemaker:DescribeApp" + ] + } + }, + "primaryIdentifier": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName" + ], + "properties": { + "AppArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app/.*", + "type": "string" + }, + "AppName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "RStudioServerPro", + "RSessionGateway", + "Canvas" + ], + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "ResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/AppArn" + ], + "required": [ + "AppName", + "AppType", + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::App", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-domain.json new file mode 100644 index 0000000000..5cd4ea45fa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-domain.json @@ -0,0 +1,831 @@ +{ + "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" + } + }, + "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" + } + }, + "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/ca_central_1/aws-sagemaker-model.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-model.json new file mode 100644 index 0000000000..ef768bc0ed --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-model.json @@ -0,0 +1,235 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ExecutionRoleArn", + "/properties/EnableNetworkIsolation", + "/properties/InferenceExecutionConfig", + "/properties/PrimaryContainer", + "/properties/ModelName", + "/properties/VpcConfig", + "/properties/Containers" + ], + "definitions": { + "ContainerDefinition": { + "additionalProperties": false, + "properties": { + "ContainerHostname": { + "type": "string" + }, + "Environment": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Image": { + "type": "string" + }, + "ImageConfig": { + "$ref": "#/definitions/ImageConfig" + }, + "InferenceSpecificationName": { + "type": "string" + }, + "Mode": { + "type": "string" + }, + "ModelDataSource": { + "$ref": "#/definitions/ModelDataSource" + }, + "ModelDataUrl": { + "type": "string" + }, + "ModelPackageName": { + "type": "string" + }, + "MultiModelConfig": { + "$ref": "#/definitions/MultiModelConfig" + } + }, + "type": "object" + }, + "ImageConfig": { + "additionalProperties": false, + "properties": { + "RepositoryAccessMode": { + "type": "string" + }, + "RepositoryAuthConfig": { + "$ref": "#/definitions/RepositoryAuthConfig" + } + }, + "required": [ + "RepositoryAccessMode" + ], + "type": "object" + }, + "InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "ModelAccessConfig": { + "additionalProperties": false, + "properties": { + "AcceptEula": { + "type": "boolean" + } + }, + "required": [ + "AcceptEula" + ], + "type": "object" + }, + "ModelDataSource": { + "additionalProperties": false, + "properties": { + "S3DataSource": { + "$ref": "#/definitions/S3DataSource" + } + }, + "required": [ + "S3DataSource" + ], + "type": "object" + }, + "MultiModelConfig": { + "additionalProperties": false, + "properties": { + "ModelCacheSetting": { + "type": "string" + } + }, + "type": "object" + }, + "RepositoryAuthConfig": { + "additionalProperties": false, + "properties": { + "RepositoryCredentialsProviderArn": { + "type": "string" + } + }, + "required": [ + "RepositoryCredentialsProviderArn" + ], + "type": "object" + }, + "S3DataSource": { + "additionalProperties": false, + "properties": { + "CompressionType": { + "type": "string" + }, + "ModelAccessConfig": { + "$ref": "#/definitions/ModelAccessConfig" + }, + "S3DataType": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "S3Uri", + "S3DataType", + "CompressionType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Subnets", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/ContainerDefinition" + }, + "type": "array", + "uniqueItems": false + }, + "EnableNetworkIsolation": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/InferenceExecutionConfig" + }, + "ModelName": { + "type": "string" + }, + "PrimaryContainer": { + "$ref": "#/definitions/ContainerDefinition" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcConfig": { + "$ref": "#/definitions/VpcConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SageMaker::Model" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-space.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-space.json new file mode 100644 index 0000000000..1ad92e7aa4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-space.json @@ -0,0 +1,436 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/SpaceName", + "/properties/SpaceSharingSettings", + "/properties/OwnershipSettings" + ], + "definitions": { + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "TensorBoard", + "RStudioServerPro", + "RSessionGateway", + "JupyterLab", + "CodeEditor" + ], + "type": "string" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "maxLength": 256, + "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "CustomFileSystem": { + "additionalProperties": false, + "properties": { + "EFSFileSystem": { + "$ref": "#/definitions/EFSFileSystem" + } + }, + "type": "object" + }, + "CustomFileSystems": { + "items": { + "$ref": "#/definitions/CustomFileSystem" + }, + "maxItems": 1, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "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" + }, + "EFSFileSystem": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "maxLength": 21, + "minLength": 11, + "pattern": "^(fs-[0-9a-f]{8,})$", + "type": "string" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EbsStorageSettings": { + "additionalProperties": false, + "properties": { + "EbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" + } + }, + "required": [ + "EbsVolumeSizeInGb" + ], + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "OwnershipSettings": { + "additionalProperties": false, + "properties": { + "OwnerUserProfileName": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "required": [ + "OwnerUserProfileName" + ], + "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" + }, + "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" + }, + "SpaceCodeEditorAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "SpaceJupyterLabAppSettings": { + "additionalProperties": false, + "properties": { + "CodeRepositories": { + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "SpaceSettings": { + "additionalProperties": false, + "properties": { + "AppType": { + "$ref": "#/definitions/AppType" + }, + "CodeEditorAppSettings": { + "$ref": "#/definitions/SpaceCodeEditorAppSettings" + }, + "CustomFileSystems": { + "$ref": "#/definitions/CustomFileSystems" + }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/SpaceJupyterLabAppSettings" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings" + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/SpaceStorageSettings" + } + }, + "type": "object" + }, + "SpaceSharingSettings": { + "additionalProperties": false, + "properties": { + "SharingType": { + "enum": [ + "Private", + "Shared" + ], + "type": "string" + } + }, + "required": [ + "SharingType" + ], + "type": "object" + }, + "SpaceStorageSettings": { + "additionalProperties": false, + "properties": { + "EbsStorageSettings": { + "$ref": "#/definitions/EbsStorageSettings" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateSpace", + "sagemaker:DescribeSpace" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteSpace", + "sagemaker:DescribeSpace" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListSpaces" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeSpace" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateSpace", + "sagemaker:DescribeSpace" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainId", + "/properties/SpaceName" + ], + "properties": { + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "OwnershipSettings": { + "$ref": "#/definitions/OwnershipSettings" + }, + "SpaceArn": { + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:space/.*", + "type": "string" + }, + "SpaceDisplayName": { + "maxLength": 64, + "pattern": "^(?!\\s*$).+", + "type": "string" + }, + "SpaceName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SpaceSettings": { + "$ref": "#/definitions/SpaceSettings", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + }, + "SpaceSharingSettings": { + "$ref": "#/definitions/SpaceSharingSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "maxLength": 1024, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/SpaceArn", + "/properties/Url" + ], + "required": [ + "DomainId", + "SpaceName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SageMaker::Space", + "writeOnlyProperties": [ + "/properties/SpaceSettings", + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..c2c0daf9fe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-sagemaker-userprofile.json @@ -0,0 +1,592 @@ +{ + "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" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "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" + }, + "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/ca_central_1/aws-secretsmanager-resourcepolicy.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-secretsmanager-resourcepolicy.json new file mode 100644 index 0000000000..92fc7be26c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/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/ca_west_1/__init__.py b/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py index c4500debcd..410b1e1c71 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py @@ -277,6 +277,8 @@ "AWS::Events::EventBus", "AWS::Events::EventBusPolicy", "AWS::Events::Rule", + "AWS::FMS::NotificationChannel", + "AWS::FMS::Policy", "AWS::FSx::DataRepositoryAssociation", "AWS::FSx::FileSystem", "AWS::FSx::Snapshot", @@ -561,7 +563,6 @@ "aws-appconfig-extension.json", "aws-appconfig-extensionassociation.json", "aws-appconfig-hostedconfigurationversion.json", - "aws-arczonalshift-zonalautoshiftconfiguration.json", "aws-athena-datacatalog.json", "aws-athena-namedquery.json", "aws-athena-preparedstatement.json", @@ -671,7 +672,6 @@ "aws-ec2-ipamresourcediscovery.json", "aws-ec2-ipamresourcediscoveryassociation.json", "aws-ec2-ipamscope.json", - "aws-ec2-keypair.json", "aws-ec2-launchtemplate.json", "aws-ec2-natgateway.json", "aws-ec2-networkacl.json", @@ -687,6 +687,7 @@ "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-spotfleet.json", "aws-ec2-subnet.json", + "aws-ec2-subnetcidrblock.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", "aws-ec2-trafficmirrortarget.json", @@ -748,13 +749,13 @@ "aws-emr-instancegroupconfig.json", "aws-events-eventbuspolicy.json", "aws-events-rule.json", + "aws-fms-notificationchannel.json", "aws-fsx-datarepositoryassociation.json", "aws-fsx-filesystem.json", "aws-fsx-snapshot.json", "aws-fsx-storagevirtualmachine.json", "aws-fsx-volume.json", "aws-globalaccelerator-accelerator.json", - "aws-globalaccelerator-crossaccountattachment.json", "aws-globalaccelerator-endpointgroup.json", "aws-globalaccelerator-listener.json", "aws-glue-classifier.json", @@ -770,7 +771,6 @@ "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", @@ -800,7 +800,6 @@ "aws-imagebuilder-workflow.json", "aws-kinesis-stream.json", "aws-kinesisanalyticsv2-application.json", - "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", "aws-kms-key.json", "aws-kms-replicakey.json", @@ -853,9 +852,7 @@ "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-dbproxy.json", "aws-rds-dbproxyendpoint.json", @@ -905,7 +902,6 @@ "aws-sagemaker-mlflowtrackingserver.json", "aws-sagemaker-modelcard.json", "aws-sdb-domain.json", - "aws-secretsmanager-resourcepolicy.json", "aws-secretsmanager-rotationschedule.json", "aws-secretsmanager-secret.json", "aws-securityhub-automationrule.json", @@ -945,6 +941,8 @@ "aws-ssm-patchbaseline.json", "aws-ssm-resourcedatasync.json", "aws-sso-instance.json", + "aws-stepfunctions-activity.json", + "aws-stepfunctions-statemachine.json", "aws-stepfunctions-statemachinealias.json", "aws-stepfunctions-statemachineversion.json", "aws-synthetics-canary.json", diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-applicationautoscaling-scalingpolicy.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-applicationautoscaling-scalingpolicy.json index 3e500939d6..78487c1780 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-applicationautoscaling-scalingpolicy.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-applicationautoscaling-scalingpolicy.json @@ -82,7 +82,9 @@ "NeptuneReaderAverageCPUUtilization", "RDSReaderAverageCPUUtilization", "RDSReaderAverageDatabaseConnections", + "SageMakerInferenceComponentConcurrentRequestsPerCopyHighResolution", "SageMakerInferenceComponentInvocationsPerCopy", + "SageMakerVariantConcurrentRequestsPerModelHighResolution", "SageMakerVariantInvocationsPerInstance", "SageMakerVariantProvisionedConcurrencyUtilization", "WorkSpacesAverageUserSessionsCapacityUtilization" diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-arczonalshift-zonalautoshiftconfiguration.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-arczonalshift-zonalautoshiftconfiguration.json new file mode 100644 index 0000000000..3bdd4887b2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-arczonalshift-zonalautoshiftconfiguration.json @@ -0,0 +1,169 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "allOf": [ + { + "required": [ + "ResourceIdentifier" + ] + } + ], + "anyOf": [ + { + "required": [ + "ZonalAutoshiftStatus" + ] + }, + { + "required": [ + "PracticeRunConfiguration" + ] + } + ] + } + ], + "createOnlyProperties": [ + "/properties/ResourceIdentifier" + ], + "definitions": { + "ControlCondition": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "maxLength": 1024, + "minLength": 8, + "pattern": "^arn:.*$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/ControlConditionType" + } + }, + "required": [ + "AlarmIdentifier", + "Type" + ], + "type": "object" + }, + "ControlConditionType": { + "enum": [ + "CLOUDWATCH" + ], + "type": "string" + }, + "PracticeRunConfiguration": { + "additionalProperties": false, + "properties": { + "BlockedDates": { + "insertionOrder": false, + "items": { + "maxLength": 10, + "minLength": 10, + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockedWindows": { + "insertionOrder": false, + "items": { + "maxLength": 19, + "minLength": 19, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}-(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockingAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "OutcomeAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "OutcomeAlarms" + ], + "type": "object" + }, + "ZonalAutoshiftStatus": { + "enum": [ + "ENABLED" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "arc-zonal-shift:CreatePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "arc-zonal-shift:DeletePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration" + ] + }, + "list": { + "permissions": [ + "arc-zonal-shift:ListManagedResources" + ] + }, + "read": { + "permissions": [ + "arc-zonal-shift:GetManagedResource" + ] + }, + "update": { + "permissions": [ + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdatePracticeRunConfiguration", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms" + ] + } + }, + "primaryIdentifier": [ + "/properties/ResourceIdentifier" + ], + "properties": { + "PracticeRunConfiguration": { + "$ref": "#/definitions/PracticeRunConfiguration" + }, + "ResourceIdentifier": { + "maxLength": 1024, + "minLength": 8, + "type": "string" + }, + "ZonalAutoshiftStatus": { + "$ref": "#/definitions/ZonalAutoshiftStatus" + } + }, + "tagging": { + "taggable": false + }, + "typeName": "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-keypair.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-keypair.json similarity index 96% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-keypair.json rename to src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-keypair.json index 0947fab641..4e6803a430 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-keypair.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-keypair.json @@ -112,10 +112,6 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "tagging": { "cloudFormationSystemTags": false, - "permissions": [ - "ec2:CreateTags" - ], - "tagProperty": "/properties/Tags", "tagUpdatable": false, "taggable": true }, diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-fms-policy.json new file mode 100644 index 0000000000..8456d02fd6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-fms-policy.json @@ -0,0 +1,472 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkAclCommonPolicy": { + "additionalProperties": false, + "properties": { + "NetworkAclEntrySet": { + "$ref": "#/definitions/NetworkAclEntrySet" + } + }, + "required": [ + "NetworkAclEntrySet" + ], + "type": "object" + }, + "NetworkAclEntry": { + "additionalProperties": false, + "properties": { + "CidrBlock": { + "pattern": "^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))$", + "type": "string" + }, + "Egress": { + "type": "boolean" + }, + "IcmpTypeCode": { + "additionalProperties": false, + "properties": { + "Code": { + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "Type": { + "maximum": 255, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Code", + "Type" + ], + "type": "object" + }, + "Ipv6CidrBlock": { + "pattern": "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))(/(1[0-2]|[0-9]))?$", + "type": "string" + }, + "PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + }, + "To": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "From", + "To" + ], + "type": "object" + }, + "Protocol": { + "pattern": "^(tcp|udp|icmp|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", + "type": "string" + }, + "RuleAction": { + "enum": [ + "allow", + "deny" + ], + "type": "string" + } + }, + "required": [ + "Egress", + "Protocol", + "RuleAction" + ], + "type": "object" + }, + "NetworkAclEntryList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/NetworkAclEntry" + }, + "type": "array" + }, + "NetworkAclEntrySet": { + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "FirstEntries" + ] + }, + { + "required": [ + "LastEntries" + ] + } + ], + "properties": { + "FirstEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + }, + "ForceRemediateForFirstEntries": { + "type": "boolean" + }, + "ForceRemediateForLastEntries": { + "type": "boolean" + }, + "LastEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + } + }, + "required": [ + "ForceRemediateForFirstEntries", + "ForceRemediateForLastEntries" + ], + "type": "object" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + }, + { + "required": [ + "NetworkAclCommonPolicy" + ] + } + ], + "properties": { + "NetworkAclCommonPolicy": { + "$ref": "#/definitions/NetworkAclCommonPolicy" + }, + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL", + "NETWORK_ACL_COMMON" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-globalaccelerator-crossaccountattachment.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-globalaccelerator-crossaccountattachment.json new file mode 100644 index 0000000000..31881ad480 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-globalaccelerator-crossaccountattachment.json @@ -0,0 +1,123 @@ +{ + "additionalProperties": false, + "definitions": { + "Resource": { + "additionalProperties": false, + "properties": { + "EndpointId": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "EndpointId" + ], + "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": [ + "globalaccelerator:DescribeCrossAccountAttachment", + "globalaccelerator:CreateCrossAccountAttachment", + "globalaccelerator:TagResource" + ] + }, + "delete": { + "permissions": [ + "globalaccelerator:DescribeCrossAccountAttachment", + "globalaccelerator:DeleteCrossAccountAttachment" + ] + }, + "list": { + "permissions": [ + "globalaccelerator:ListCrossAccountAttachments" + ] + }, + "read": { + "permissions": [ + "globalaccelerator:DescribeCrossAccountAttachment" + ] + }, + "update": { + "permissions": [ + "globalaccelerator:UpdateCrossAccountAttachment", + "globalaccelerator:DescribeCrossAccountAttachment", + "globalaccelerator:TagResource", + "globalaccelerator:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AttachmentArn" + ], + "properties": { + "AttachmentArn": { + "type": "string" + }, + "Name": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]{0,64}$", + "type": "string" + }, + "Principals": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Resources": { + "items": { + "$ref": "#/definitions/Resource" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/AttachmentArn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-globalaccelerator", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::GlobalAccelerator::CrossAccountAttachment", + "writeOnlyProperties": [ + "/properties/Resources/*/Region" + ] +} 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 new file mode 100644 index 0000000000..974dd89b9f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-trigger.json @@ -0,0 +1,172 @@ +{ + "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-kinesisfirehose-deliverystream.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-kinesisfirehose-deliverystream.json new file mode 100644 index 0000000000..37b2adaff0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-kinesisfirehose-deliverystream.json @@ -0,0 +1,1607 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeliveryStreamName", + "/properties/DeliveryStreamType", + "/properties/ElasticsearchDestinationConfiguration/VpcConfiguration", + "/properties/AmazonopensearchserviceDestinationConfiguration/VpcConfiguration", + "/properties/AmazonOpenSearchServerlessDestinationConfiguration/VpcConfiguration", + "/properties/KinesisStreamSourceConfiguration", + "/properties/MSKSourceConfiguration", + "/properties/SnowflakeDestinationConfiguration/SnowflakeVpcConfiguration" + ], + "definitions": { + "AmazonOpenSearchServerlessBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonOpenSearchServerlessDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonOpenSearchServerlessBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CollectionEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "relationshipRef": { + "propertyPath": "/properties/CollectionEndpoint", + "typeName": "AWS::OpenSearchServerless::Collection" + }, + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonOpenSearchServerlessRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonOpenSearchServerlessRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonopensearchserviceBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonopensearchserviceRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "Connectivity": { + "enum": [ + "PUBLIC", + "PRIVATE" + ], + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "Connectivity" + ], + "type": "object" + }, + "BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": { + "relationshipRef": { + "propertyPath": "/properties/LogGroupName", + "typeName": "AWS::Logs::LogGroup" + }, + "type": "string" + }, + "LogStreamName": { + "relationshipRef": { + "propertyPath": "/properties/LogStreamName", + "typeName": "AWS::Logs::LogStream" + }, + "type": "string" + } + }, + "type": "object" + }, + "CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableColumns": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableName": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/SchemaConfiguration" + } + }, + "type": "object" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + }, + "KeyType": { + "enum": [ + "AWS_OWNED_CMK", + "CUSTOMER_MANAGED_CMK" + ], + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/OpenXJsonSerDe" + } + }, + "type": "object" + }, + "DocumentIdOptions": { + "additionalProperties": false, + "properties": { + "DefaultDocumentIdFormat": { + "enum": [ + "FIREHOSE_DEFAULT", + "NO_DOCUMENT_ID" + ], + "type": "string" + } + }, + "required": [ + "DefaultDocumentIdFormat" + ], + "type": "object" + }, + "DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + } + }, + "type": "object" + }, + "ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/ElasticsearchBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Elasticsearch::Domain" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::OpenSearchService::Domain" + } + } + ], + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/ElasticsearchRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "ElasticsearchRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KMSEncryptionConfig": { + "$ref": "#/definitions/KMSEncryptionConfig" + }, + "NoEncryptionConfig": { + "enum": [ + "NoEncryption" + ], + "type": "string" + } + }, + "type": "object" + }, + "ExtendedS3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "CustomTimeZone": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "DataFormatConversionConfiguration": { + "$ref": "#/definitions/DataFormatConversionConfiguration" + }, + "DynamicPartitioningConfiguration": { + "$ref": "#/definitions/DynamicPartitioningConfiguration" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "FileExtension": { + "maxLength": 128, + "minLength": 0, + "pattern": "^$|\\.[0-9a-z!\\-_.*'()]+", + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "HiveJsonSerDe": { + "additionalProperties": false, + "properties": { + "TimestampFormats": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "HttpEndpointCommonAttribute": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeValue" + ], + "type": "object" + }, + "HttpEndpointConfiguration": { + "additionalProperties": false, + "properties": { + "AccessKey": { + "maxLength": 4096, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Url": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "HttpEndpointDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/HttpEndpointConfiguration" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RequestConfiguration": { + "$ref": "#/definitions/HttpEndpointRequestConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "EndpointConfiguration", + "S3Configuration" + ], + "type": "object" + }, + "HttpEndpointRequestConfiguration": { + "additionalProperties": false, + "properties": { + "CommonAttributes": { + "items": { + "$ref": "#/definitions/HttpEndpointCommonAttribute" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "ContentEncoding": { + "enum": [ + "NONE", + "GZIP" + ], + "type": "string" + } + }, + "type": "object" + }, + "InputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Deserializer": { + "$ref": "#/definitions/Deserializer" + } + }, + "type": "object" + }, + "KMSEncryptionConfig": { + "additionalProperties": false, + "properties": { + "AWSKMSKeyARN": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + } + }, + "required": [ + "AWSKMSKeyARN" + ], + "type": "object" + }, + "KinesisStreamSourceConfiguration": { + "additionalProperties": false, + "properties": { + "KinesisStreamARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "KinesisStreamARN" + ], + "type": "object" + }, + "MSKSourceConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AuthenticationConfiguration" + }, + "MSKClusterARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::MSK::Cluster" + }, + "type": "string" + }, + "TopicName": { + "maxLength": 255, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\._\\-]+", + "type": "string" + } + }, + "required": [ + "MSKClusterARN", + "TopicName", + "AuthenticationConfiguration" + ], + "type": "object" + }, + "OpenXJsonSerDe": { + "additionalProperties": false, + "properties": { + "CaseInsensitive": { + "type": "boolean" + }, + "ColumnToJsonKeyMappings": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ConvertDotsInJsonKeysToUnderscores": { + "type": "boolean" + } + }, + "type": "object" + }, + "OrcSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "BloomFilterColumns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BloomFilterFalsePositiveProbability": { + "type": "number" + }, + "Compression": { + "type": "string" + }, + "DictionaryKeyThreshold": { + "type": "number" + }, + "EnablePadding": { + "type": "boolean" + }, + "FormatVersion": { + "type": "string" + }, + "PaddingTolerance": { + "type": "number" + }, + "RowIndexStride": { + "type": "integer" + }, + "StripeSizeBytes": { + "type": "integer" + } + }, + "type": "object" + }, + "OutputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Serializer": { + "$ref": "#/definitions/Serializer" + } + }, + "type": "object" + }, + "ParquetSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "Compression": { + "type": "string" + }, + "EnableDictionaryCompression": { + "type": "boolean" + }, + "MaxPaddingBytes": { + "type": "integer" + }, + "PageSizeBytes": { + "type": "integer" + }, + "WriterVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Processors": { + "items": { + "$ref": "#/definitions/Processor" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Processor": { + "additionalProperties": false, + "properties": { + "Parameters": { + "items": { + "$ref": "#/definitions/ProcessorParameter" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "enum": [ + "RecordDeAggregation", + "Decompression", + "CloudWatchLogProcessing", + "Lambda", + "MetadataExtraction", + "AppendDelimiterToRecord" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ProcessorParameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Lambda::Function" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Lambda::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "RedshiftDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterJDBCURL": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "CopyCommand": { + "$ref": "#/definitions/CopyCommand" + }, + "Password": { + "maxLength": 512, + "minLength": 6, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RedshiftRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "Username": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "S3Configuration", + "ClusterJDBCURL", + "CopyCommand", + "RoleARN" + ], + "type": "object" + }, + "RedshiftRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "RetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "SchemaConfiguration": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Database" + }, + "type": "string" + }, + "Region": { + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "TableName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Table" + }, + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "SecretsManagerConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecretARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::SecretsManager::Secret" + }, + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Serializer": { + "additionalProperties": false, + "properties": { + "OrcSerDe": { + "$ref": "#/definitions/OrcSerDe" + }, + "ParquetSerDe": { + "$ref": "#/definitions/ParquetSerDe" + } + }, + "type": "object" + }, + "SnowflakeDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "AccountUrl": { + "maxLength": 2048, + "minLength": 24, + "pattern": ".+?\\.snowflakecomputing\\.com", + "type": "string" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ContentColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "DataLoadingOption": { + "enum": [ + "JSON_MAPPING", + "VARIANT_CONTENT_MAPPING", + "VARIANT_CONTENT_AND_METADATA_MAPPING" + ], + "type": "string" + }, + "Database": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyPassphrase": { + "maxLength": 255, + "minLength": 7, + "type": "string" + }, + "MetaDataColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "PrivateKey": { + "maxLength": 4096, + "minLength": 256, + "pattern": "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$", + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SnowflakeRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDataOnly", + "AllData" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "Schema": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "SnowflakeRoleConfiguration": { + "$ref": "#/definitions/SnowflakeRoleConfiguration" + }, + "SnowflakeVpcConfiguration": { + "$ref": "#/definitions/SnowflakeVpcConfiguration" + }, + "Table": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "User": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "AccountUrl", + "Database", + "Schema", + "Table", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "SnowflakeRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "SnowflakeRoleConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SnowflakeRole": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "SnowflakeVpcConfiguration": { + "additionalProperties": false, + "properties": { + "PrivateLinkVpceId": { + "maxLength": 255, + "minLength": 47, + "pattern": "([a-zA-Z0-9\\-\\_]+\\.){2,3}vpce\\.[a-zA-Z0-9\\-]*\\.vpce-svc\\-[a-zA-Z0-9\\-]{17}$", + "type": "string" + } + }, + "required": [ + "PrivateLinkVpceId" + ], + "type": "object" + }, + "SplunkBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "SplunkDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/SplunkBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "HECAcknowledgmentTimeoutInSeconds": { + "maximum": 600, + "minimum": 180, + "type": "integer" + }, + "HECEndpoint": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "HECEndpointType": { + "enum": [ + "Raw", + "Event" + ], + "type": "string" + }, + "HECToken": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SplunkRetryOptions" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "HECEndpoint", + "S3Configuration", + "HECEndpointType" + ], + "type": "object" + }, + "SplunkRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "VpcConfiguration": { + "additionalProperties": false, + "properties": { + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/GroupId", + "typeName": "AWS::EC2::SecurityGroup" + }, + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::Subnet" + }, + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "RoleARN", + "SubnetIds", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "firehose:CreateDeliveryStream", + "firehose:DescribeDeliveryStream", + "iam:GetRole", + "iam:PassRole", + "kms:CreateGrant", + "kms:DescribeKey" + ] + }, + "delete": { + "permissions": [ + "firehose:DeleteDeliveryStream", + "firehose:DescribeDeliveryStream", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + }, + "list": { + "permissions": [ + "firehose:ListDeliveryStreams" + ] + }, + "read": { + "permissions": [ + "firehose:DescribeDeliveryStream", + "firehose:ListTagsForDeliveryStream" + ] + }, + "update": { + "permissions": [ + "firehose:UpdateDestination", + "firehose:DescribeDeliveryStream", + "firehose:StartDeliveryStreamEncryption", + "firehose:StopDeliveryStreamEncryption", + "firehose:ListTagsForDeliveryStream", + "firehose:TagDeliveryStream", + "firehose:UntagDeliveryStream", + "kms:CreateGrant", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + } + }, + "primaryIdentifier": [ + "/properties/DeliveryStreamName" + ], + "properties": { + "AmazonOpenSearchServerlessDestinationConfiguration": { + "$ref": "#/definitions/AmazonOpenSearchServerlessDestinationConfiguration" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "$ref": "#/definitions/AmazonopensearchserviceDestinationConfiguration" + }, + "Arn": { + "type": "string" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/DeliveryStreamEncryptionConfigurationInput" + }, + "DeliveryStreamName": { + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9._-]+", + "type": "string" + }, + "DeliveryStreamType": { + "enum": [ + "DirectPut", + "KinesisStreamAsSource", + "MSKAsSource" + ], + "type": "string" + }, + "ElasticsearchDestinationConfiguration": { + "$ref": "#/definitions/ElasticsearchDestinationConfiguration" + }, + "ExtendedS3DestinationConfiguration": { + "$ref": "#/definitions/ExtendedS3DestinationConfiguration" + }, + "HttpEndpointDestinationConfiguration": { + "$ref": "#/definitions/HttpEndpointDestinationConfiguration" + }, + "KinesisStreamSourceConfiguration": { + "$ref": "#/definitions/KinesisStreamSourceConfiguration" + }, + "MSKSourceConfiguration": { + "$ref": "#/definitions/MSKSourceConfiguration" + }, + "RedshiftDestinationConfiguration": { + "$ref": "#/definitions/RedshiftDestinationConfiguration" + }, + "S3DestinationConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SnowflakeDestinationConfiguration": { + "$ref": "#/definitions/SnowflakeDestinationConfiguration" + }, + "SplunkDestinationConfiguration": { + "$ref": "#/definitions/SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "typeName": "AWS::KinesisFirehose::DeliveryStream" +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbcluster.json similarity index 99% rename from src/cfnlint/data/schemas/providers/cn_north_1/aws-rds-dbcluster.json rename to src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbcluster.json index 6dee021f39..fc8608c49b 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-rds-dbcluster.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbcluster.json @@ -151,7 +151,6 @@ }, "delete": { "permissions": [ - "rds:AddTagsToResource", "rds:CreateDBClusterSnapshot", "rds:DeleteDBCluster", "rds:DeleteDBInstance", diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbinstance.json similarity index 99% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-rds-dbinstance.json rename to src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbinstance.json index 94f443dbfb..3263d77fb7 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-rds-dbinstance.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbinstance.json @@ -193,7 +193,6 @@ }, "delete": { "permissions": [ - "rds:AddTagsToResource", "rds:CreateDBSnapshot", "rds:DeleteDBInstance", "rds:DescribeDBInstances" diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-secretsmanager-resourcepolicy.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-secretsmanager-resourcepolicy.json new file mode 100644 index 0000000000..92fc7be26c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/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/ca_west_1/aws-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-stepfunctions-activity.json deleted file mode 100644 index 7aaf191ed1..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-stepfunctions-activity.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateActivity", - "states:TagResource" - ] - }, - "delete": { - "permissions": [ - "states:DescribeActivity", - "states:DeleteActivity" - ] - }, - "list": { - "permissions": [ - "states:ListActivities" - ] - }, - "read": { - "permissions": [ - "states:DescribeActivity", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:ListTagsForResource", - "states:TagResource", - "states:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::Activity" -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-stepfunctions-statemachine.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-stepfunctions-statemachine.json deleted file mode 100644 index c8a1b0f42e..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-stepfunctions-statemachine.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/StateMachineName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StateMachineName", - "/properties/StateMachineType" - ], - "definitions": { - "CloudWatchLogsLogGroup": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Definition": { - "minProperties": 1, - "type": "object" - }, - "DefinitionSubstitutions": { - "additionalProperties": false, - "minProperties": 1, - "patternProperties": { - ".*": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer" - }, - { - "type": "boolean" - } - ] - } - }, - "type": "object" - }, - "LogDestination": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsLogGroup": { - "$ref": "#/definitions/CloudWatchLogsLogGroup" - } - }, - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "Destinations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LogDestination" - }, - "minItems": 1, - "type": "array" - }, - "IncludeExecutionData": { - "type": "boolean" - }, - "Level": { - "enum": [ - "ALL", - "ERROR", - "FATAL", - "OFF" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TracingConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateStateMachine", - "states:DescribeStateMachine", - "states:TagResource", - "iam:PassRole", - "s3:GetObject" - ] - }, - "delete": { - "permissions": [ - "states:DeleteStateMachine", - "states:DescribeStateMachine" - ] - }, - "list": { - "permissions": [ - "states:ListStateMachines" - ] - }, - "read": { - "permissions": [ - "states:DescribeStateMachine", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:UpdateStateMachine", - "states:TagResource", - "states:UntagResource", - "states:ListTagsForResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Definition": { - "$ref": "#/definitions/Definition" - }, - "DefinitionS3Location": { - "$ref": "#/definitions/S3Location" - }, - "DefinitionString": { - "maxLength": 1048576, - "minLength": 1, - "type": "string" - }, - "DefinitionSubstitutions": { - "$ref": "#/definitions/DefinitionSubstitutions" - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "RoleArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineName": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "StateMachineRevisionId": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineType": { - "enum": [ - "STANDARD", - "EXPRESS" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - }, - "TracingConfiguration": { - "$ref": "#/definitions/TracingConfiguration" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/StateMachineRevisionId" - ], - "required": [ - "RoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::StateMachine", - "writeOnlyProperties": [ - "/properties/Definition", - "/properties/DefinitionS3Location", - "/properties/DefinitionSubstitutions" - ] -} 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 e28d4022f9..099edc3994 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py @@ -101,6 +101,7 @@ "AWS::CloudFormation::CustomResource", "AWS::CloudFormation::HookDefaultVersion", "AWS::CloudFormation::HookTypeConfig", + "AWS::CloudFormation::HookVersion", "AWS::CloudFormation::Macro", "AWS::CloudFormation::ModuleDefaultVersion", "AWS::CloudFormation::ModuleVersion", @@ -768,7 +769,6 @@ "aws-appsync-graphqlschema.json", "aws-appsync-resolver.json", "aws-appsync-sourceapiassociation.json", - "aws-arczonalshift-zonalautoshiftconfiguration.json", "aws-athena-datacatalog.json", "aws-athena-namedquery.json", "aws-athena-preparedstatement.json", @@ -783,7 +783,6 @@ "aws-backup-backupselection.json", "aws-backup-backupvault.json", "aws-batch-computeenvironment.json", - "aws-batch-jobdefinition.json", "aws-batch-jobqueue.json", "aws-batch-schedulingpolicy.json", "aws-budgets-budget.json", @@ -798,6 +797,7 @@ "aws-cloudformation-customresource.json", "aws-cloudformation-hookdefaultversion.json", "aws-cloudformation-hooktypeconfig.json", + "aws-cloudformation-hookversion.json", "aws-cloudformation-macro.json", "aws-cloudformation-moduledefaultversion.json", "aws-cloudformation-moduleversion.json", @@ -1125,7 +1125,6 @@ "aws-kinesisanalytics-applicationoutput.json", "aws-kinesisanalyticsv2-application.json", "aws-kinesisanalyticsv2-applicationoutput.json", - "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", "aws-kms-key.json", "aws-lakeformation-datacellsfilter.json", @@ -1178,6 +1177,7 @@ "aws-opsworks-userprofile.json", "aws-opsworks-volume.json", "aws-organizations-account.json", + "aws-organizations-organization.json", "aws-organizations-organizationalunit.json", "aws-personalize-dataset.json", "aws-personalize-datasetgroup.json", @@ -1194,7 +1194,9 @@ "aws-quicksight-vpcconnection.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", + "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", + "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", "aws-rds-dbproxy.json", "aws-rds-dbproxyendpoint.json", @@ -1244,7 +1246,6 @@ "aws-s3-storagelensgroup.json", "aws-s3objectlambda-accesspoint.json", "aws-s3objectlambda-accesspointpolicy.json", - "aws-sagemaker-app.json", "aws-sagemaker-appimageconfig.json", "aws-sagemaker-coderepository.json", "aws-sagemaker-endpoint.json", @@ -1252,7 +1253,6 @@ "aws-sagemaker-featuregroup.json", "aws-sagemaker-image.json", "aws-sagemaker-imageversion.json", - "aws-sagemaker-model.json", "aws-sagemaker-modelcard.json", "aws-sagemaker-modelpackage.json", "aws-sagemaker-monitoringschedule.json", @@ -1310,6 +1310,8 @@ "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", @@ -1339,8 +1341,6 @@ "aws-wafv2-webacl.json", "aws-wafv2-webaclassociation.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/cn_north_1/aws-arczonalshift-zonalautoshiftconfiguration.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-arczonalshift-zonalautoshiftconfiguration.json new file mode 100644 index 0000000000..3bdd4887b2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-arczonalshift-zonalautoshiftconfiguration.json @@ -0,0 +1,169 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "allOf": [ + { + "required": [ + "ResourceIdentifier" + ] + } + ], + "anyOf": [ + { + "required": [ + "ZonalAutoshiftStatus" + ] + }, + { + "required": [ + "PracticeRunConfiguration" + ] + } + ] + } + ], + "createOnlyProperties": [ + "/properties/ResourceIdentifier" + ], + "definitions": { + "ControlCondition": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "maxLength": 1024, + "minLength": 8, + "pattern": "^arn:.*$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/ControlConditionType" + } + }, + "required": [ + "AlarmIdentifier", + "Type" + ], + "type": "object" + }, + "ControlConditionType": { + "enum": [ + "CLOUDWATCH" + ], + "type": "string" + }, + "PracticeRunConfiguration": { + "additionalProperties": false, + "properties": { + "BlockedDates": { + "insertionOrder": false, + "items": { + "maxLength": 10, + "minLength": 10, + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockedWindows": { + "insertionOrder": false, + "items": { + "maxLength": 19, + "minLength": 19, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}-(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockingAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "OutcomeAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "OutcomeAlarms" + ], + "type": "object" + }, + "ZonalAutoshiftStatus": { + "enum": [ + "ENABLED" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "arc-zonal-shift:CreatePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "arc-zonal-shift:DeletePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration" + ] + }, + "list": { + "permissions": [ + "arc-zonal-shift:ListManagedResources" + ] + }, + "read": { + "permissions": [ + "arc-zonal-shift:GetManagedResource" + ] + }, + "update": { + "permissions": [ + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdatePracticeRunConfiguration", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms" + ] + } + }, + "primaryIdentifier": [ + "/properties/ResourceIdentifier" + ], + "properties": { + "PracticeRunConfiguration": { + "$ref": "#/definitions/PracticeRunConfiguration" + }, + "ResourceIdentifier": { + "maxLength": 1024, + "minLength": 8, + "type": "string" + }, + "ZonalAutoshiftStatus": { + "$ref": "#/definitions/ZonalAutoshiftStatus" + } + }, + "tagging": { + "taggable": false + }, + "typeName": "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-batch-jobdefinition.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-batch-jobdefinition.json new file mode 100644 index 0000000000..2d82031cd0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-batch-jobdefinition.json @@ -0,0 +1,992 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tags", + "/properties/JobDefinitionName" + ], + "definitions": { + "AuthorizationConfig": { + "additionalProperties": false, + "properties": { + "AccessPointId": { + "type": "string" + }, + "Iam": { + "type": "string" + } + }, + "type": "object" + }, + "ContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "FargatePlatformConfiguration": { + "$ref": "#/definitions/FargatePlatformConfiguration" + }, + "Image": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "JobRoleArn": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Memory": { + "type": "integer" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + }, + "Vcpus": { + "type": "integer" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Device": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "HostPath": { + "type": "string" + }, + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EcsProperties": { + "additionalProperties": false, + "properties": { + "TaskProperties": { + "items": { + "$ref": "#/definitions/EcsTaskProperties" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "TaskProperties" + ], + "type": "object" + }, + "EcsTaskProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "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": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EfsVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "AuthorizationConfig": { + "$ref": "#/definitions/AuthorizationConfig" + }, + "FileSystemId": { + "type": "string" + }, + "RootDirectory": { + "type": "string" + }, + "TransitEncryption": { + "type": "string" + }, + "TransitEncryptionPort": { + "type": "integer" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EksContainer": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Env": { + "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": { + "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": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Requests": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "type": "object" + }, + "EksContainerSecurityContext": { + "additionalProperties": false, + "properties": { + "AllowPrivilegeEscalation": { + "type": "boolean" + }, + "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" + }, + "EksProperties": { + "additionalProperties": false, + "properties": { + "PodProperties": { + "$ref": "#/definitions/PodProperties" + } + }, + "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" + }, + "FargatePlatformConfiguration": { + "additionalProperties": false, + "properties": { + "PlatformVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ImagePullSecret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "LinuxParameters": { + "additionalProperties": false, + "properties": { + "Devices": { + "items": { + "$ref": "#/definitions/Device" + }, + "type": "array", + "uniqueItems": false + }, + "InitProcessEnabled": { + "type": "boolean" + }, + "MaxSwap": { + "type": "integer" + }, + "SharedMemorySize": { + "type": "integer" + }, + "Swappiness": { + "type": "integer" + }, + "Tmpfs": { + "items": { + "$ref": "#/definitions/Tmpfs" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "SecretOptions": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "Metadata": { + "additionalProperties": false, + "properties": { + "Labels": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "type": "object" + }, + "MountPoints": { + "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": { + "items": { + "$ref": "#/definitions/NodeRangeProperty" + }, + "type": "array", + "uniqueItems": false + }, + "NumNodes": { + "type": "integer" + } + }, + "required": [ + "MainNode", + "NodeRangeProperties", + "NumNodes" + ], + "type": "object" + }, + "NodeRangeProperty": { + "additionalProperties": false, + "properties": { + "Container": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "TargetNodes": { + "type": "string" + } + }, + "required": [ + "TargetNodes" + ], + "type": "object" + }, + "PodProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "DnsPolicy": { + "type": "string" + }, + "HostNetwork": { + "type": "boolean" + }, + "ImagePullSecrets": { + "items": { + "$ref": "#/definitions/ImagePullSecret" + }, + "type": "array", + "uniqueItems": false + }, + "InitContainers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "Metadata": { + "$ref": "#/definitions/Metadata" + }, + "ServiceAccountName": { + "type": "string" + }, + "ShareProcessNamespace": { + "type": "boolean" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/EksVolume" + }, + "type": "array", + "uniqueItems": false + } + }, + "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": { + "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": [ + "ValueFrom", + "Name" + ], + "type": "object" + }, + "TaskContainerDependency": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "ContainerName": { + "type": "string" + } + }, + "required": [ + "Condition", + "ContainerName" + ], + "type": "object" + }, + "TaskContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "DependsOn": { + "items": { + "$ref": "#/definitions/TaskContainerDependency" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "Essential": { + "type": "boolean" + }, + "Image": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "Name": { + "type": "string" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Timeout": { + "additionalProperties": false, + "properties": { + "AttemptDurationSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tmpfs": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "MountOptions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Size": { + "type": "integer" + } + }, + "required": [ + "Size", + "ContainerPath" + ], + "type": "object" + }, + "Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "integer" + } + }, + "required": [ + "SoftLimit", + "HardLimit", + "Name" + ], + "type": "object" + }, + "Volumes": { + "additionalProperties": false, + "properties": { + "EfsVolumeConfiguration": { + "$ref": "#/definitions/EfsVolumeConfiguration" + }, + "Host": { + "$ref": "#/definitions/VolumesHost" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "VolumesHost": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContainerProperties": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "EksProperties": { + "$ref": "#/definitions/EksProperties" + }, + "Id": { + "type": "string" + }, + "JobDefinitionName": { + "type": "string" + }, + "NodeProperties": { + "$ref": "#/definitions/NodeProperties" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "PlatformCapabilities": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "PropagateTags": { + "type": "boolean" + }, + "RetryStrategy": { + "$ref": "#/definitions/RetryStrategy" + }, + "SchedulingPriority": { + "type": "integer" + }, + "Tags": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Timeout": { + "$ref": "#/definitions/Timeout" + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type" + ], + "typeName": "AWS::Batch::JobDefinition" +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-kinesisfirehose-deliverystream.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-kinesisfirehose-deliverystream.json new file mode 100644 index 0000000000..37b2adaff0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-kinesisfirehose-deliverystream.json @@ -0,0 +1,1607 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeliveryStreamName", + "/properties/DeliveryStreamType", + "/properties/ElasticsearchDestinationConfiguration/VpcConfiguration", + "/properties/AmazonopensearchserviceDestinationConfiguration/VpcConfiguration", + "/properties/AmazonOpenSearchServerlessDestinationConfiguration/VpcConfiguration", + "/properties/KinesisStreamSourceConfiguration", + "/properties/MSKSourceConfiguration", + "/properties/SnowflakeDestinationConfiguration/SnowflakeVpcConfiguration" + ], + "definitions": { + "AmazonOpenSearchServerlessBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonOpenSearchServerlessDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonOpenSearchServerlessBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CollectionEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "relationshipRef": { + "propertyPath": "/properties/CollectionEndpoint", + "typeName": "AWS::OpenSearchServerless::Collection" + }, + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonOpenSearchServerlessRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonOpenSearchServerlessRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonopensearchserviceBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonopensearchserviceRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "Connectivity": { + "enum": [ + "PUBLIC", + "PRIVATE" + ], + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "Connectivity" + ], + "type": "object" + }, + "BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": { + "relationshipRef": { + "propertyPath": "/properties/LogGroupName", + "typeName": "AWS::Logs::LogGroup" + }, + "type": "string" + }, + "LogStreamName": { + "relationshipRef": { + "propertyPath": "/properties/LogStreamName", + "typeName": "AWS::Logs::LogStream" + }, + "type": "string" + } + }, + "type": "object" + }, + "CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableColumns": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableName": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/SchemaConfiguration" + } + }, + "type": "object" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + }, + "KeyType": { + "enum": [ + "AWS_OWNED_CMK", + "CUSTOMER_MANAGED_CMK" + ], + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/OpenXJsonSerDe" + } + }, + "type": "object" + }, + "DocumentIdOptions": { + "additionalProperties": false, + "properties": { + "DefaultDocumentIdFormat": { + "enum": [ + "FIREHOSE_DEFAULT", + "NO_DOCUMENT_ID" + ], + "type": "string" + } + }, + "required": [ + "DefaultDocumentIdFormat" + ], + "type": "object" + }, + "DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + } + }, + "type": "object" + }, + "ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/ElasticsearchBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Elasticsearch::Domain" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::OpenSearchService::Domain" + } + } + ], + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/ElasticsearchRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "ElasticsearchRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KMSEncryptionConfig": { + "$ref": "#/definitions/KMSEncryptionConfig" + }, + "NoEncryptionConfig": { + "enum": [ + "NoEncryption" + ], + "type": "string" + } + }, + "type": "object" + }, + "ExtendedS3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "CustomTimeZone": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "DataFormatConversionConfiguration": { + "$ref": "#/definitions/DataFormatConversionConfiguration" + }, + "DynamicPartitioningConfiguration": { + "$ref": "#/definitions/DynamicPartitioningConfiguration" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "FileExtension": { + "maxLength": 128, + "minLength": 0, + "pattern": "^$|\\.[0-9a-z!\\-_.*'()]+", + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "HiveJsonSerDe": { + "additionalProperties": false, + "properties": { + "TimestampFormats": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "HttpEndpointCommonAttribute": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeValue" + ], + "type": "object" + }, + "HttpEndpointConfiguration": { + "additionalProperties": false, + "properties": { + "AccessKey": { + "maxLength": 4096, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Url": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "HttpEndpointDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/HttpEndpointConfiguration" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RequestConfiguration": { + "$ref": "#/definitions/HttpEndpointRequestConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "EndpointConfiguration", + "S3Configuration" + ], + "type": "object" + }, + "HttpEndpointRequestConfiguration": { + "additionalProperties": false, + "properties": { + "CommonAttributes": { + "items": { + "$ref": "#/definitions/HttpEndpointCommonAttribute" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "ContentEncoding": { + "enum": [ + "NONE", + "GZIP" + ], + "type": "string" + } + }, + "type": "object" + }, + "InputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Deserializer": { + "$ref": "#/definitions/Deserializer" + } + }, + "type": "object" + }, + "KMSEncryptionConfig": { + "additionalProperties": false, + "properties": { + "AWSKMSKeyARN": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + } + }, + "required": [ + "AWSKMSKeyARN" + ], + "type": "object" + }, + "KinesisStreamSourceConfiguration": { + "additionalProperties": false, + "properties": { + "KinesisStreamARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "KinesisStreamARN" + ], + "type": "object" + }, + "MSKSourceConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AuthenticationConfiguration" + }, + "MSKClusterARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::MSK::Cluster" + }, + "type": "string" + }, + "TopicName": { + "maxLength": 255, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\._\\-]+", + "type": "string" + } + }, + "required": [ + "MSKClusterARN", + "TopicName", + "AuthenticationConfiguration" + ], + "type": "object" + }, + "OpenXJsonSerDe": { + "additionalProperties": false, + "properties": { + "CaseInsensitive": { + "type": "boolean" + }, + "ColumnToJsonKeyMappings": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ConvertDotsInJsonKeysToUnderscores": { + "type": "boolean" + } + }, + "type": "object" + }, + "OrcSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "BloomFilterColumns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BloomFilterFalsePositiveProbability": { + "type": "number" + }, + "Compression": { + "type": "string" + }, + "DictionaryKeyThreshold": { + "type": "number" + }, + "EnablePadding": { + "type": "boolean" + }, + "FormatVersion": { + "type": "string" + }, + "PaddingTolerance": { + "type": "number" + }, + "RowIndexStride": { + "type": "integer" + }, + "StripeSizeBytes": { + "type": "integer" + } + }, + "type": "object" + }, + "OutputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Serializer": { + "$ref": "#/definitions/Serializer" + } + }, + "type": "object" + }, + "ParquetSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "Compression": { + "type": "string" + }, + "EnableDictionaryCompression": { + "type": "boolean" + }, + "MaxPaddingBytes": { + "type": "integer" + }, + "PageSizeBytes": { + "type": "integer" + }, + "WriterVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Processors": { + "items": { + "$ref": "#/definitions/Processor" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Processor": { + "additionalProperties": false, + "properties": { + "Parameters": { + "items": { + "$ref": "#/definitions/ProcessorParameter" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "enum": [ + "RecordDeAggregation", + "Decompression", + "CloudWatchLogProcessing", + "Lambda", + "MetadataExtraction", + "AppendDelimiterToRecord" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ProcessorParameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Lambda::Function" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Lambda::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "RedshiftDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterJDBCURL": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "CopyCommand": { + "$ref": "#/definitions/CopyCommand" + }, + "Password": { + "maxLength": 512, + "minLength": 6, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RedshiftRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "Username": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "S3Configuration", + "ClusterJDBCURL", + "CopyCommand", + "RoleARN" + ], + "type": "object" + }, + "RedshiftRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "RetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "SchemaConfiguration": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Database" + }, + "type": "string" + }, + "Region": { + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "TableName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Table" + }, + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "SecretsManagerConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecretARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::SecretsManager::Secret" + }, + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Serializer": { + "additionalProperties": false, + "properties": { + "OrcSerDe": { + "$ref": "#/definitions/OrcSerDe" + }, + "ParquetSerDe": { + "$ref": "#/definitions/ParquetSerDe" + } + }, + "type": "object" + }, + "SnowflakeDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "AccountUrl": { + "maxLength": 2048, + "minLength": 24, + "pattern": ".+?\\.snowflakecomputing\\.com", + "type": "string" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ContentColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "DataLoadingOption": { + "enum": [ + "JSON_MAPPING", + "VARIANT_CONTENT_MAPPING", + "VARIANT_CONTENT_AND_METADATA_MAPPING" + ], + "type": "string" + }, + "Database": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyPassphrase": { + "maxLength": 255, + "minLength": 7, + "type": "string" + }, + "MetaDataColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "PrivateKey": { + "maxLength": 4096, + "minLength": 256, + "pattern": "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$", + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SnowflakeRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDataOnly", + "AllData" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "Schema": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "SnowflakeRoleConfiguration": { + "$ref": "#/definitions/SnowflakeRoleConfiguration" + }, + "SnowflakeVpcConfiguration": { + "$ref": "#/definitions/SnowflakeVpcConfiguration" + }, + "Table": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "User": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "AccountUrl", + "Database", + "Schema", + "Table", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "SnowflakeRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "SnowflakeRoleConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SnowflakeRole": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "SnowflakeVpcConfiguration": { + "additionalProperties": false, + "properties": { + "PrivateLinkVpceId": { + "maxLength": 255, + "minLength": 47, + "pattern": "([a-zA-Z0-9\\-\\_]+\\.){2,3}vpce\\.[a-zA-Z0-9\\-]*\\.vpce-svc\\-[a-zA-Z0-9\\-]{17}$", + "type": "string" + } + }, + "required": [ + "PrivateLinkVpceId" + ], + "type": "object" + }, + "SplunkBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "SplunkDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/SplunkBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "HECAcknowledgmentTimeoutInSeconds": { + "maximum": 600, + "minimum": 180, + "type": "integer" + }, + "HECEndpoint": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "HECEndpointType": { + "enum": [ + "Raw", + "Event" + ], + "type": "string" + }, + "HECToken": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SplunkRetryOptions" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "HECEndpoint", + "S3Configuration", + "HECEndpointType" + ], + "type": "object" + }, + "SplunkRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "VpcConfiguration": { + "additionalProperties": false, + "properties": { + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/GroupId", + "typeName": "AWS::EC2::SecurityGroup" + }, + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::Subnet" + }, + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "RoleARN", + "SubnetIds", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "firehose:CreateDeliveryStream", + "firehose:DescribeDeliveryStream", + "iam:GetRole", + "iam:PassRole", + "kms:CreateGrant", + "kms:DescribeKey" + ] + }, + "delete": { + "permissions": [ + "firehose:DeleteDeliveryStream", + "firehose:DescribeDeliveryStream", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + }, + "list": { + "permissions": [ + "firehose:ListDeliveryStreams" + ] + }, + "read": { + "permissions": [ + "firehose:DescribeDeliveryStream", + "firehose:ListTagsForDeliveryStream" + ] + }, + "update": { + "permissions": [ + "firehose:UpdateDestination", + "firehose:DescribeDeliveryStream", + "firehose:StartDeliveryStreamEncryption", + "firehose:StopDeliveryStreamEncryption", + "firehose:ListTagsForDeliveryStream", + "firehose:TagDeliveryStream", + "firehose:UntagDeliveryStream", + "kms:CreateGrant", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + } + }, + "primaryIdentifier": [ + "/properties/DeliveryStreamName" + ], + "properties": { + "AmazonOpenSearchServerlessDestinationConfiguration": { + "$ref": "#/definitions/AmazonOpenSearchServerlessDestinationConfiguration" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "$ref": "#/definitions/AmazonopensearchserviceDestinationConfiguration" + }, + "Arn": { + "type": "string" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/DeliveryStreamEncryptionConfigurationInput" + }, + "DeliveryStreamName": { + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9._-]+", + "type": "string" + }, + "DeliveryStreamType": { + "enum": [ + "DirectPut", + "KinesisStreamAsSource", + "MSKAsSource" + ], + "type": "string" + }, + "ElasticsearchDestinationConfiguration": { + "$ref": "#/definitions/ElasticsearchDestinationConfiguration" + }, + "ExtendedS3DestinationConfiguration": { + "$ref": "#/definitions/ExtendedS3DestinationConfiguration" + }, + "HttpEndpointDestinationConfiguration": { + "$ref": "#/definitions/HttpEndpointDestinationConfiguration" + }, + "KinesisStreamSourceConfiguration": { + "$ref": "#/definitions/KinesisStreamSourceConfiguration" + }, + "MSKSourceConfiguration": { + "$ref": "#/definitions/MSKSourceConfiguration" + }, + "RedshiftDestinationConfiguration": { + "$ref": "#/definitions/RedshiftDestinationConfiguration" + }, + "S3DestinationConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SnowflakeDestinationConfiguration": { + "$ref": "#/definitions/SnowflakeDestinationConfiguration" + }, + "SplunkDestinationConfiguration": { + "$ref": "#/definitions/SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "typeName": "AWS::KinesisFirehose::DeliveryStream" +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-organizations-organization.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-organizations-organization.json deleted file mode 100644 index 844033a13a..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-organizations-organization.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "additionalProperties": false, - "handlers": { - "create": { - "permissions": [ - "organizations:CreateOrganization", - "organizations:DescribeOrganization", - "iam:CreateServiceLinkedRole", - "organizations:ListRoots" - ] - }, - "delete": { - "permissions": [ - "organizations:DeleteOrganization", - "organizations:DescribeOrganization" - ] - }, - "list": { - "permissions": [ - "organizations:DescribeOrganization" - ] - }, - "read": { - "permissions": [ - "organizations:DescribeOrganization", - "organizations:ListRoots" - ] - }, - "update": { - "permissions": [ - "organizations:DescribeOrganization" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "pattern": "^arn:aws.*:organizations::\\d{12}:organization\\/o-[a-z0-9]{10,32}", - "type": "string" - }, - "FeatureSet": { - "default": "ALL", - "enum": [ - "ALL", - "CONSOLIDATED_BILLING" - ], - "type": "string" - }, - "Id": { - "pattern": "^o-[a-z0-9]{10,32}$", - "type": "string" - }, - "ManagementAccountArn": { - "pattern": "^arn:aws.*:organizations::\\d{12}:account\\/o-[a-z0-9]{10,32}\\/\\d{12}", - "type": "string" - }, - "ManagementAccountEmail": { - "maxLength": 64, - "minLength": 6, - "pattern": "[^\\s@]+@[^\\s@]+\\.[^\\s@]+", - "type": "string" - }, - "ManagementAccountId": { - "pattern": "^\\d{12}$", - "type": "string" - }, - "RootId": { - "maxLength": 64, - "pattern": "^r-[0-9a-z]{4,32}$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn", - "/properties/ManagementAccountArn", - "/properties/ManagementAccountId", - "/properties/ManagementAccountEmail", - "/properties/RootId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-organizations.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::Organizations::Organization" -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-app.json new file mode 100644 index 0000000000..d565ffb835 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-app.json @@ -0,0 +1,210 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/Tags", + "/properties/ResourceSpec" + ], + "definitions": { + "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" + }, + "SageMakerImageArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:DescribeApp" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DescribeApp" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListApps" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeApp", + "sagemaker:DescribeApp" + ] + } + }, + "primaryIdentifier": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName" + ], + "properties": { + "AppArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app/.*", + "type": "string" + }, + "AppName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "RStudioServerPro", + "RSessionGateway", + "Canvas" + ], + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "ResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/AppArn" + ], + "required": [ + "AppName", + "AppType", + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::App", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-model.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-model.json new file mode 100644 index 0000000000..ef768bc0ed --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-model.json @@ -0,0 +1,235 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ExecutionRoleArn", + "/properties/EnableNetworkIsolation", + "/properties/InferenceExecutionConfig", + "/properties/PrimaryContainer", + "/properties/ModelName", + "/properties/VpcConfig", + "/properties/Containers" + ], + "definitions": { + "ContainerDefinition": { + "additionalProperties": false, + "properties": { + "ContainerHostname": { + "type": "string" + }, + "Environment": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Image": { + "type": "string" + }, + "ImageConfig": { + "$ref": "#/definitions/ImageConfig" + }, + "InferenceSpecificationName": { + "type": "string" + }, + "Mode": { + "type": "string" + }, + "ModelDataSource": { + "$ref": "#/definitions/ModelDataSource" + }, + "ModelDataUrl": { + "type": "string" + }, + "ModelPackageName": { + "type": "string" + }, + "MultiModelConfig": { + "$ref": "#/definitions/MultiModelConfig" + } + }, + "type": "object" + }, + "ImageConfig": { + "additionalProperties": false, + "properties": { + "RepositoryAccessMode": { + "type": "string" + }, + "RepositoryAuthConfig": { + "$ref": "#/definitions/RepositoryAuthConfig" + } + }, + "required": [ + "RepositoryAccessMode" + ], + "type": "object" + }, + "InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "ModelAccessConfig": { + "additionalProperties": false, + "properties": { + "AcceptEula": { + "type": "boolean" + } + }, + "required": [ + "AcceptEula" + ], + "type": "object" + }, + "ModelDataSource": { + "additionalProperties": false, + "properties": { + "S3DataSource": { + "$ref": "#/definitions/S3DataSource" + } + }, + "required": [ + "S3DataSource" + ], + "type": "object" + }, + "MultiModelConfig": { + "additionalProperties": false, + "properties": { + "ModelCacheSetting": { + "type": "string" + } + }, + "type": "object" + }, + "RepositoryAuthConfig": { + "additionalProperties": false, + "properties": { + "RepositoryCredentialsProviderArn": { + "type": "string" + } + }, + "required": [ + "RepositoryCredentialsProviderArn" + ], + "type": "object" + }, + "S3DataSource": { + "additionalProperties": false, + "properties": { + "CompressionType": { + "type": "string" + }, + "ModelAccessConfig": { + "$ref": "#/definitions/ModelAccessConfig" + }, + "S3DataType": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "S3Uri", + "S3DataType", + "CompressionType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Subnets", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/ContainerDefinition" + }, + "type": "array", + "uniqueItems": false + }, + "EnableNetworkIsolation": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/InferenceExecutionConfig" + }, + "ModelName": { + "type": "string" + }, + "PrimaryContainer": { + "$ref": "#/definitions/ContainerDefinition" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcConfig": { + "$ref": "#/definitions/VpcConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SageMaker::Model" +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-stepfunctions-activity.json deleted file mode 100644 index 7aaf191ed1..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-stepfunctions-activity.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateActivity", - "states:TagResource" - ] - }, - "delete": { - "permissions": [ - "states:DescribeActivity", - "states:DeleteActivity" - ] - }, - "list": { - "permissions": [ - "states:ListActivities" - ] - }, - "read": { - "permissions": [ - "states:DescribeActivity", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:ListTagsForResource", - "states:TagResource", - "states:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::Activity" -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-stepfunctions-statemachine.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-stepfunctions-statemachine.json deleted file mode 100644 index c8a1b0f42e..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-stepfunctions-statemachine.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/StateMachineName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StateMachineName", - "/properties/StateMachineType" - ], - "definitions": { - "CloudWatchLogsLogGroup": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Definition": { - "minProperties": 1, - "type": "object" - }, - "DefinitionSubstitutions": { - "additionalProperties": false, - "minProperties": 1, - "patternProperties": { - ".*": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer" - }, - { - "type": "boolean" - } - ] - } - }, - "type": "object" - }, - "LogDestination": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsLogGroup": { - "$ref": "#/definitions/CloudWatchLogsLogGroup" - } - }, - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "Destinations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LogDestination" - }, - "minItems": 1, - "type": "array" - }, - "IncludeExecutionData": { - "type": "boolean" - }, - "Level": { - "enum": [ - "ALL", - "ERROR", - "FATAL", - "OFF" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TracingConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateStateMachine", - "states:DescribeStateMachine", - "states:TagResource", - "iam:PassRole", - "s3:GetObject" - ] - }, - "delete": { - "permissions": [ - "states:DeleteStateMachine", - "states:DescribeStateMachine" - ] - }, - "list": { - "permissions": [ - "states:ListStateMachines" - ] - }, - "read": { - "permissions": [ - "states:DescribeStateMachine", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:UpdateStateMachine", - "states:TagResource", - "states:UntagResource", - "states:ListTagsForResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Definition": { - "$ref": "#/definitions/Definition" - }, - "DefinitionS3Location": { - "$ref": "#/definitions/S3Location" - }, - "DefinitionString": { - "maxLength": 1048576, - "minLength": 1, - "type": "string" - }, - "DefinitionSubstitutions": { - "$ref": "#/definitions/DefinitionSubstitutions" - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "RoleArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineName": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "StateMachineRevisionId": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineType": { - "enum": [ - "STANDARD", - "EXPRESS" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - }, - "TracingConfiguration": { - "$ref": "#/definitions/TracingConfiguration" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/StateMachineRevisionId" - ], - "required": [ - "RoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::StateMachine", - "writeOnlyProperties": [ - "/properties/Definition", - "/properties/DefinitionS3Location", - "/properties/DefinitionSubstitutions" - ] -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-xray-group.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-xray-group.json new file mode 100644 index 0000000000..658d9b8484 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-xray-group.json @@ -0,0 +1,105 @@ +{ + "additionalProperties": false, + "definitions": { + "InsightsConfiguration": { + "additionalProperties": false, + "properties": { + "InsightsEnabled": { + "type": "boolean" + }, + "NotificationsEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "handlers": { + "create": { + "permissions": [ + "xray:CreateGroup", + "xray:TagResource" + ] + }, + "delete": { + "permissions": [ + "xray:DeleteGroup" + ] + }, + "list": { + "permissions": [ + "xray:GetGroups", + "xray:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "xray:GetGroup", + "xray:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "xray:UpdateGroup", + "xray:TagResource", + "xray:UntagResource", + "xray:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/GroupARN" + ], + "properties": { + "FilterExpression": { + "type": "string" + }, + "GroupARN": { + "maxLength": 400, + "minLength": 1, + "type": "string" + }, + "GroupName": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "InsightsConfiguration": { + "$ref": "#/definitions/InsightsConfiguration" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "readOnlyProperties": [ + "/properties/GroupARN" + ], + "required": [ + "GroupName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::XRay::Group" +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-xray-samplingrule.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-xray-samplingrule.json new file mode 100644 index 0000000000..7ed7156ff8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-xray-samplingrule.json @@ -0,0 +1,255 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SamplingRule/Version" + ], + "definitions": { + "RuleARN": { + "type": "string" + }, + "RuleName": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "SamplingRule": { + "additionalProperties": false, + "properties": { + "Attributes": { + "$comment": "String to string map", + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "FixedRate": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "HTTPMethod": { + "maxLength": 10, + "type": "string" + }, + "Host": { + "maxLength": 64, + "type": "string" + }, + "Priority": { + "maximum": 9999, + "minimum": 1, + "type": "integer" + }, + "ReservoirSize": { + "minimum": 0, + "type": "integer" + }, + "ResourceARN": { + "maxLength": 500, + "type": "string" + }, + "RuleARN": { + "$ref": "#/definitions/RuleARN" + }, + "RuleName": { + "$ref": "#/definitions/RuleName" + }, + "ServiceName": { + "maxLength": 64, + "type": "string" + }, + "ServiceType": { + "maxLength": 64, + "type": "string" + }, + "URLPath": { + "maxLength": 128, + "type": "string" + }, + "Version": { + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "FixedRate", + "Host", + "HTTPMethod", + "Priority", + "ReservoirSize", + "ResourceARN", + "ServiceName", + "ServiceType", + "URLPath" + ], + "type": "object" + }, + "SamplingRuleRecord": { + "additionalProperties": false, + "properties": { + "CreatedAt": { + "type": "string" + }, + "ModifiedAt": { + "type": "string" + }, + "SamplingRule": { + "$ref": "#/definitions/SamplingRule" + } + }, + "type": "object" + }, + "SamplingRuleUpdate": { + "additionalProperties": false, + "properties": { + "Attributes": { + "$comment": "String to string map", + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "FixedRate": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "HTTPMethod": { + "maxLength": 10, + "type": "string" + }, + "Host": { + "maxLength": 64, + "type": "string" + }, + "Priority": { + "maximum": 9999, + "minimum": 1, + "type": "integer" + }, + "ReservoirSize": { + "minimum": 0, + "type": "integer" + }, + "ResourceARN": { + "maxLength": 500, + "type": "string" + }, + "RuleARN": { + "$ref": "#/definitions/RuleARN" + }, + "RuleName": { + "$ref": "#/definitions/RuleName" + }, + "ServiceName": { + "maxLength": 64, + "type": "string" + }, + "ServiceType": { + "maxLength": 64, + "type": "string" + }, + "URLPath": { + "maxLength": 128, + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "deprecatedProperties": [ + "/properties/RuleName", + "/properties/SamplingRuleRecord", + "/properties/SamplingRuleUpdate" + ], + "handlers": { + "create": { + "permissions": [ + "xray:CreateSamplingRule", + "xray:TagResource" + ] + }, + "delete": { + "permissions": [ + "xray:DeleteSamplingRule" + ] + }, + "list": { + "permissions": [ + "xray:GetSamplingRules", + "xray:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "xray:GetSamplingRules", + "xray:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "xray:UpdateSamplingRule", + "xray:TagResource", + "xray:UntagResource", + "xray:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleARN" + ], + "properties": { + "RuleARN": { + "$ref": "#/definitions/RuleARN" + }, + "RuleName": { + "$ref": "#/definitions/RuleName" + }, + "SamplingRule": { + "$ref": "#/definitions/SamplingRule" + }, + "SamplingRuleRecord": { + "$ref": "#/definitions/SamplingRuleRecord" + }, + "SamplingRuleUpdate": { + "$ref": "#/definitions/SamplingRuleUpdate" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "readOnlyProperties": [ + "/properties/RuleARN" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::XRay::SamplingRule" +} 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 b56d46d7b3..a712ec0f6c 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py @@ -107,6 +107,9 @@ "AWS::CertificateManager::Certificate", "AWS::Cloud9::EnvironmentEC2", "AWS::CloudFormation::CustomResource", + "AWS::CloudFormation::HookDefaultVersion", + "AWS::CloudFormation::HookTypeConfig", + "AWS::CloudFormation::HookVersion", "AWS::CloudFormation::Macro", "AWS::CloudFormation::ModuleDefaultVersion", "AWS::CloudFormation::ModuleVersion", @@ -727,7 +730,6 @@ "aws-appsync-graphqlschema.json", "aws-appsync-resolver.json", "aws-appsync-sourceapiassociation.json", - "aws-arczonalshift-zonalautoshiftconfiguration.json", "aws-athena-datacatalog.json", "aws-athena-namedquery.json", "aws-athena-preparedstatement.json", @@ -742,7 +744,6 @@ "aws-backup-backupselection.json", "aws-backup-backupvault.json", "aws-batch-computeenvironment.json", - "aws-batch-jobdefinition.json", "aws-batch-jobqueue.json", "aws-batch-schedulingpolicy.json", "aws-budgets-budget.json", @@ -755,6 +756,9 @@ "aws-certificatemanager-account.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-moduledefaultversion.json", "aws-cloudformation-moduleversion.json", @@ -847,7 +851,6 @@ "aws-ec2-ipamresourcediscovery.json", "aws-ec2-ipamresourcediscoveryassociation.json", "aws-ec2-ipamscope.json", - "aws-ec2-keypair.json", "aws-ec2-launchtemplate.json", "aws-ec2-natgateway.json", "aws-ec2-networkacl.json", @@ -948,7 +951,6 @@ "aws-eventschemas-registry.json", "aws-eventschemas-registrypolicy.json", "aws-eventschemas-schema.json", - "aws-fms-policy.json", "aws-frauddetector-list.json", "aws-fsx-datarepositoryassociation.json", "aws-fsx-snapshot.json", @@ -979,7 +981,6 @@ "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", @@ -1044,7 +1045,6 @@ "aws-kinesisanalytics-applicationoutput.json", "aws-kinesisanalyticsv2-application.json", "aws-kinesisanalyticsv2-applicationoutput.json", - "aws-kinesisfirehose-deliverystream.json", "aws-kms-alias.json", "aws-kms-key.json", "aws-lakeformation-datacellsfilter.json", @@ -1100,9 +1100,7 @@ "aws-pipes-pipe.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", - "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", "aws-rds-dbproxy.json", "aws-rds-dbproxyendpoint.json", @@ -1112,7 +1110,6 @@ "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", "aws-rds-globalcluster.json", - "aws-rds-integration.json", "aws-rds-optiongroup.json", "aws-redshift-cluster.json", "aws-redshift-clusterparametergroup.json", @@ -1151,16 +1148,13 @@ "aws-s3-storagelensgroup.json", "aws-s3objectlambda-accesspoint.json", "aws-s3objectlambda-accesspointpolicy.json", - "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-featuregroup.json", "aws-sagemaker-image.json", "aws-sagemaker-imageversion.json", - "aws-sagemaker-model.json", "aws-sagemaker-modelcard.json", "aws-sagemaker-modelpackage.json", "aws-sagemaker-monitoringschedule.json", @@ -1168,10 +1162,8 @@ "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-sagemaker-pipeline.json", "aws-sagemaker-project.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-securityhub-automationrule.json", @@ -1219,6 +1211,8 @@ "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", @@ -1248,8 +1242,6 @@ "aws-wafv2-webacl.json", "aws-wafv2-webaclassociation.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/cn_northwest_1/aws-arczonalshift-zonalautoshiftconfiguration.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-arczonalshift-zonalautoshiftconfiguration.json new file mode 100644 index 0000000000..3bdd4887b2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-arczonalshift-zonalautoshiftconfiguration.json @@ -0,0 +1,169 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "allOf": [ + { + "required": [ + "ResourceIdentifier" + ] + } + ], + "anyOf": [ + { + "required": [ + "ZonalAutoshiftStatus" + ] + }, + { + "required": [ + "PracticeRunConfiguration" + ] + } + ] + } + ], + "createOnlyProperties": [ + "/properties/ResourceIdentifier" + ], + "definitions": { + "ControlCondition": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "maxLength": 1024, + "minLength": 8, + "pattern": "^arn:.*$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/ControlConditionType" + } + }, + "required": [ + "AlarmIdentifier", + "Type" + ], + "type": "object" + }, + "ControlConditionType": { + "enum": [ + "CLOUDWATCH" + ], + "type": "string" + }, + "PracticeRunConfiguration": { + "additionalProperties": false, + "properties": { + "BlockedDates": { + "insertionOrder": false, + "items": { + "maxLength": 10, + "minLength": 10, + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockedWindows": { + "insertionOrder": false, + "items": { + "maxLength": 19, + "minLength": 19, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}-(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}$", + "type": "string" + }, + "maxItems": 15, + "minItems": 0, + "type": "array" + }, + "BlockingAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "OutcomeAlarms": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ControlCondition" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "OutcomeAlarms" + ], + "type": "object" + }, + "ZonalAutoshiftStatus": { + "enum": [ + "ENABLED" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "arc-zonal-shift:CreatePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "arc-zonal-shift:DeletePracticeRunConfiguration", + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration" + ] + }, + "list": { + "permissions": [ + "arc-zonal-shift:ListManagedResources" + ] + }, + "read": { + "permissions": [ + "arc-zonal-shift:GetManagedResource" + ] + }, + "update": { + "permissions": [ + "arc-zonal-shift:GetManagedResource", + "arc-zonal-shift:UpdatePracticeRunConfiguration", + "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", + "cloudwatch:DescribeAlarms" + ] + } + }, + "primaryIdentifier": [ + "/properties/ResourceIdentifier" + ], + "properties": { + "PracticeRunConfiguration": { + "$ref": "#/definitions/PracticeRunConfiguration" + }, + "ResourceIdentifier": { + "maxLength": 1024, + "minLength": 8, + "type": "string" + }, + "ZonalAutoshiftStatus": { + "$ref": "#/definitions/ZonalAutoshiftStatus" + } + }, + "tagging": { + "taggable": false + }, + "typeName": "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-batch-jobdefinition.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-batch-jobdefinition.json new file mode 100644 index 0000000000..2d82031cd0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-batch-jobdefinition.json @@ -0,0 +1,992 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tags", + "/properties/JobDefinitionName" + ], + "definitions": { + "AuthorizationConfig": { + "additionalProperties": false, + "properties": { + "AccessPointId": { + "type": "string" + }, + "Iam": { + "type": "string" + } + }, + "type": "object" + }, + "ContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "FargatePlatformConfiguration": { + "$ref": "#/definitions/FargatePlatformConfiguration" + }, + "Image": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "JobRoleArn": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Memory": { + "type": "integer" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + }, + "Vcpus": { + "type": "integer" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Device": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "HostPath": { + "type": "string" + }, + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EcsProperties": { + "additionalProperties": false, + "properties": { + "TaskProperties": { + "items": { + "$ref": "#/definitions/EcsTaskProperties" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "TaskProperties" + ], + "type": "object" + }, + "EcsTaskProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "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": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EfsVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "AuthorizationConfig": { + "$ref": "#/definitions/AuthorizationConfig" + }, + "FileSystemId": { + "type": "string" + }, + "RootDirectory": { + "type": "string" + }, + "TransitEncryption": { + "type": "string" + }, + "TransitEncryptionPort": { + "type": "integer" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EksContainer": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Env": { + "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": { + "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": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Requests": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "type": "object" + }, + "EksContainerSecurityContext": { + "additionalProperties": false, + "properties": { + "AllowPrivilegeEscalation": { + "type": "boolean" + }, + "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" + }, + "EksProperties": { + "additionalProperties": false, + "properties": { + "PodProperties": { + "$ref": "#/definitions/PodProperties" + } + }, + "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" + }, + "FargatePlatformConfiguration": { + "additionalProperties": false, + "properties": { + "PlatformVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ImagePullSecret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "LinuxParameters": { + "additionalProperties": false, + "properties": { + "Devices": { + "items": { + "$ref": "#/definitions/Device" + }, + "type": "array", + "uniqueItems": false + }, + "InitProcessEnabled": { + "type": "boolean" + }, + "MaxSwap": { + "type": "integer" + }, + "SharedMemorySize": { + "type": "integer" + }, + "Swappiness": { + "type": "integer" + }, + "Tmpfs": { + "items": { + "$ref": "#/definitions/Tmpfs" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "SecretOptions": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "Metadata": { + "additionalProperties": false, + "properties": { + "Labels": { + "format": "json", + "type": [ + "object", + "string" + ] + } + }, + "type": "object" + }, + "MountPoints": { + "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": { + "items": { + "$ref": "#/definitions/NodeRangeProperty" + }, + "type": "array", + "uniqueItems": false + }, + "NumNodes": { + "type": "integer" + } + }, + "required": [ + "MainNode", + "NodeRangeProperties", + "NumNodes" + ], + "type": "object" + }, + "NodeRangeProperty": { + "additionalProperties": false, + "properties": { + "Container": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "TargetNodes": { + "type": "string" + } + }, + "required": [ + "TargetNodes" + ], + "type": "object" + }, + "PodProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "DnsPolicy": { + "type": "string" + }, + "HostNetwork": { + "type": "boolean" + }, + "ImagePullSecrets": { + "items": { + "$ref": "#/definitions/ImagePullSecret" + }, + "type": "array", + "uniqueItems": false + }, + "InitContainers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "Metadata": { + "$ref": "#/definitions/Metadata" + }, + "ServiceAccountName": { + "type": "string" + }, + "ShareProcessNamespace": { + "type": "boolean" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/EksVolume" + }, + "type": "array", + "uniqueItems": false + } + }, + "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": { + "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": [ + "ValueFrom", + "Name" + ], + "type": "object" + }, + "TaskContainerDependency": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "ContainerName": { + "type": "string" + } + }, + "required": [ + "Condition", + "ContainerName" + ], + "type": "object" + }, + "TaskContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "DependsOn": { + "items": { + "$ref": "#/definitions/TaskContainerDependency" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "Essential": { + "type": "boolean" + }, + "Image": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "Name": { + "type": "string" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Timeout": { + "additionalProperties": false, + "properties": { + "AttemptDurationSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tmpfs": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "MountOptions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Size": { + "type": "integer" + } + }, + "required": [ + "Size", + "ContainerPath" + ], + "type": "object" + }, + "Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "integer" + } + }, + "required": [ + "SoftLimit", + "HardLimit", + "Name" + ], + "type": "object" + }, + "Volumes": { + "additionalProperties": false, + "properties": { + "EfsVolumeConfiguration": { + "$ref": "#/definitions/EfsVolumeConfiguration" + }, + "Host": { + "$ref": "#/definitions/VolumesHost" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "VolumesHost": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContainerProperties": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "EksProperties": { + "$ref": "#/definitions/EksProperties" + }, + "Id": { + "type": "string" + }, + "JobDefinitionName": { + "type": "string" + }, + "NodeProperties": { + "$ref": "#/definitions/NodeProperties" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "PlatformCapabilities": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "PropagateTags": { + "type": "boolean" + }, + "RetryStrategy": { + "$ref": "#/definitions/RetryStrategy" + }, + "SchedulingPriority": { + "type": "integer" + }, + "Tags": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Timeout": { + "$ref": "#/definitions/Timeout" + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type" + ], + "typeName": "AWS::Batch::JobDefinition" +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-keypair.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-keypair.json new file mode 100644 index 0000000000..4e6803a430 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-keypair.json @@ -0,0 +1,122 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/KeyPairId" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KeyName", + "/properties/KeyType", + "/properties/KeyFormat", + "/properties/PublicKeyMaterial", + "/properties/Tags" + ], + "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": [ + "ec2:CreateKeyPair", + "ec2:ImportKeyPair", + "ec2:CreateTags", + "ssm:PutParameter" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteKeyPair", + "ssm:DeleteParameter", + "ec2:DescribeKeyPairs" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeKeyPairs" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeKeyPairs" + ] + } + }, + "primaryIdentifier": [ + "/properties/KeyName" + ], + "properties": { + "KeyFingerprint": { + "type": "string" + }, + "KeyFormat": { + "default": "pem", + "enum": [ + "pem", + "ppk" + ], + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "KeyPairId": { + "type": "string" + }, + "KeyType": { + "default": "rsa", + "enum": [ + "rsa", + "ed25519" + ], + "type": "string" + }, + "PublicKeyMaterial": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/KeyPairId", + "/properties/KeyFingerprint" + ], + "required": [ + "KeyName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::EC2::KeyPair", + "writeOnlyProperties": [ + "/properties/KeyFormat" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-fms-policy.json new file mode 100644 index 0000000000..8456d02fd6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-fms-policy.json @@ -0,0 +1,472 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkAclCommonPolicy": { + "additionalProperties": false, + "properties": { + "NetworkAclEntrySet": { + "$ref": "#/definitions/NetworkAclEntrySet" + } + }, + "required": [ + "NetworkAclEntrySet" + ], + "type": "object" + }, + "NetworkAclEntry": { + "additionalProperties": false, + "properties": { + "CidrBlock": { + "pattern": "^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))$", + "type": "string" + }, + "Egress": { + "type": "boolean" + }, + "IcmpTypeCode": { + "additionalProperties": false, + "properties": { + "Code": { + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "Type": { + "maximum": 255, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Code", + "Type" + ], + "type": "object" + }, + "Ipv6CidrBlock": { + "pattern": "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))(/(1[0-2]|[0-9]))?$", + "type": "string" + }, + "PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + }, + "To": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "From", + "To" + ], + "type": "object" + }, + "Protocol": { + "pattern": "^(tcp|udp|icmp|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", + "type": "string" + }, + "RuleAction": { + "enum": [ + "allow", + "deny" + ], + "type": "string" + } + }, + "required": [ + "Egress", + "Protocol", + "RuleAction" + ], + "type": "object" + }, + "NetworkAclEntryList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/NetworkAclEntry" + }, + "type": "array" + }, + "NetworkAclEntrySet": { + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "FirstEntries" + ] + }, + { + "required": [ + "LastEntries" + ] + } + ], + "properties": { + "FirstEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + }, + "ForceRemediateForFirstEntries": { + "type": "boolean" + }, + "ForceRemediateForLastEntries": { + "type": "boolean" + }, + "LastEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + } + }, + "required": [ + "ForceRemediateForFirstEntries", + "ForceRemediateForLastEntries" + ], + "type": "object" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + }, + { + "required": [ + "NetworkAclCommonPolicy" + ] + } + ], + "properties": { + "NetworkAclCommonPolicy": { + "$ref": "#/definitions/NetworkAclCommonPolicy" + }, + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL", + "NETWORK_ACL_COMMON" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} 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 new file mode 100644 index 0000000000..974dd89b9f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-trigger.json @@ -0,0 +1,172 @@ +{ + "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-kinesisfirehose-deliverystream.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-kinesisfirehose-deliverystream.json new file mode 100644 index 0000000000..37b2adaff0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-kinesisfirehose-deliverystream.json @@ -0,0 +1,1607 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeliveryStreamName", + "/properties/DeliveryStreamType", + "/properties/ElasticsearchDestinationConfiguration/VpcConfiguration", + "/properties/AmazonopensearchserviceDestinationConfiguration/VpcConfiguration", + "/properties/AmazonOpenSearchServerlessDestinationConfiguration/VpcConfiguration", + "/properties/KinesisStreamSourceConfiguration", + "/properties/MSKSourceConfiguration", + "/properties/SnowflakeDestinationConfiguration/SnowflakeVpcConfiguration" + ], + "definitions": { + "AmazonOpenSearchServerlessBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonOpenSearchServerlessDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonOpenSearchServerlessBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CollectionEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "relationshipRef": { + "propertyPath": "/properties/CollectionEndpoint", + "typeName": "AWS::OpenSearchServerless::Collection" + }, + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonOpenSearchServerlessRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonOpenSearchServerlessRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonopensearchserviceBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonopensearchserviceRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "Connectivity": { + "enum": [ + "PUBLIC", + "PRIVATE" + ], + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "Connectivity" + ], + "type": "object" + }, + "BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": { + "relationshipRef": { + "propertyPath": "/properties/LogGroupName", + "typeName": "AWS::Logs::LogGroup" + }, + "type": "string" + }, + "LogStreamName": { + "relationshipRef": { + "propertyPath": "/properties/LogStreamName", + "typeName": "AWS::Logs::LogStream" + }, + "type": "string" + } + }, + "type": "object" + }, + "CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableColumns": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableName": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/SchemaConfiguration" + } + }, + "type": "object" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + }, + "KeyType": { + "enum": [ + "AWS_OWNED_CMK", + "CUSTOMER_MANAGED_CMK" + ], + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/OpenXJsonSerDe" + } + }, + "type": "object" + }, + "DocumentIdOptions": { + "additionalProperties": false, + "properties": { + "DefaultDocumentIdFormat": { + "enum": [ + "FIREHOSE_DEFAULT", + "NO_DOCUMENT_ID" + ], + "type": "string" + } + }, + "required": [ + "DefaultDocumentIdFormat" + ], + "type": "object" + }, + "DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + } + }, + "type": "object" + }, + "ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/ElasticsearchBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Elasticsearch::Domain" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::OpenSearchService::Domain" + } + } + ], + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/ElasticsearchRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "ElasticsearchRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KMSEncryptionConfig": { + "$ref": "#/definitions/KMSEncryptionConfig" + }, + "NoEncryptionConfig": { + "enum": [ + "NoEncryption" + ], + "type": "string" + } + }, + "type": "object" + }, + "ExtendedS3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "CustomTimeZone": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "DataFormatConversionConfiguration": { + "$ref": "#/definitions/DataFormatConversionConfiguration" + }, + "DynamicPartitioningConfiguration": { + "$ref": "#/definitions/DynamicPartitioningConfiguration" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "FileExtension": { + "maxLength": 128, + "minLength": 0, + "pattern": "^$|\\.[0-9a-z!\\-_.*'()]+", + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "HiveJsonSerDe": { + "additionalProperties": false, + "properties": { + "TimestampFormats": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "HttpEndpointCommonAttribute": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeValue" + ], + "type": "object" + }, + "HttpEndpointConfiguration": { + "additionalProperties": false, + "properties": { + "AccessKey": { + "maxLength": 4096, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Url": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "HttpEndpointDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/HttpEndpointConfiguration" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RequestConfiguration": { + "$ref": "#/definitions/HttpEndpointRequestConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "EndpointConfiguration", + "S3Configuration" + ], + "type": "object" + }, + "HttpEndpointRequestConfiguration": { + "additionalProperties": false, + "properties": { + "CommonAttributes": { + "items": { + "$ref": "#/definitions/HttpEndpointCommonAttribute" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "ContentEncoding": { + "enum": [ + "NONE", + "GZIP" + ], + "type": "string" + } + }, + "type": "object" + }, + "InputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Deserializer": { + "$ref": "#/definitions/Deserializer" + } + }, + "type": "object" + }, + "KMSEncryptionConfig": { + "additionalProperties": false, + "properties": { + "AWSKMSKeyARN": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + }, + "type": "string" + } + }, + "required": [ + "AWSKMSKeyARN" + ], + "type": "object" + }, + "KinesisStreamSourceConfiguration": { + "additionalProperties": false, + "properties": { + "KinesisStreamARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "RoleARN", + "KinesisStreamARN" + ], + "type": "object" + }, + "MSKSourceConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AuthenticationConfiguration" + }, + "MSKClusterARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::MSK::Cluster" + }, + "type": "string" + }, + "TopicName": { + "maxLength": 255, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\._\\-]+", + "type": "string" + } + }, + "required": [ + "MSKClusterARN", + "TopicName", + "AuthenticationConfiguration" + ], + "type": "object" + }, + "OpenXJsonSerDe": { + "additionalProperties": false, + "properties": { + "CaseInsensitive": { + "type": "boolean" + }, + "ColumnToJsonKeyMappings": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ConvertDotsInJsonKeysToUnderscores": { + "type": "boolean" + } + }, + "type": "object" + }, + "OrcSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "BloomFilterColumns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BloomFilterFalsePositiveProbability": { + "type": "number" + }, + "Compression": { + "type": "string" + }, + "DictionaryKeyThreshold": { + "type": "number" + }, + "EnablePadding": { + "type": "boolean" + }, + "FormatVersion": { + "type": "string" + }, + "PaddingTolerance": { + "type": "number" + }, + "RowIndexStride": { + "type": "integer" + }, + "StripeSizeBytes": { + "type": "integer" + } + }, + "type": "object" + }, + "OutputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Serializer": { + "$ref": "#/definitions/Serializer" + } + }, + "type": "object" + }, + "ParquetSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "Compression": { + "type": "string" + }, + "EnableDictionaryCompression": { + "type": "boolean" + }, + "MaxPaddingBytes": { + "type": "integer" + }, + "PageSizeBytes": { + "type": "integer" + }, + "WriterVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Processors": { + "items": { + "$ref": "#/definitions/Processor" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Processor": { + "additionalProperties": false, + "properties": { + "Parameters": { + "items": { + "$ref": "#/definitions/ProcessorParameter" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "enum": [ + "RecordDeAggregation", + "Decompression", + "CloudWatchLogProcessing", + "Lambda", + "MetadataExtraction", + "AppendDelimiterToRecord" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ProcessorParameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Lambda::Function" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Lambda::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "RedshiftDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterJDBCURL": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "CopyCommand": { + "$ref": "#/definitions/CopyCommand" + }, + "Password": { + "maxLength": 512, + "minLength": 6, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RedshiftRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "Username": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "S3Configuration", + "ClusterJDBCURL", + "CopyCommand", + "RoleARN" + ], + "type": "object" + }, + "RedshiftRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "RetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "SchemaConfiguration": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Database" + }, + "type": "string" + }, + "Region": { + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "TableName": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Glue::Table" + }, + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "SecretsManagerConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecretARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::SecretsManager::Secret" + }, + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Serializer": { + "additionalProperties": false, + "properties": { + "OrcSerDe": { + "$ref": "#/definitions/OrcSerDe" + }, + "ParquetSerDe": { + "$ref": "#/definitions/ParquetSerDe" + } + }, + "type": "object" + }, + "SnowflakeDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "AccountUrl": { + "maxLength": 2048, + "minLength": 24, + "pattern": ".+?\\.snowflakecomputing\\.com", + "type": "string" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ContentColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "DataLoadingOption": { + "enum": [ + "JSON_MAPPING", + "VARIANT_CONTENT_MAPPING", + "VARIANT_CONTENT_AND_METADATA_MAPPING" + ], + "type": "string" + }, + "Database": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyPassphrase": { + "maxLength": 255, + "minLength": 7, + "type": "string" + }, + "MetaDataColumnName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "PrivateKey": { + "maxLength": 4096, + "minLength": 256, + "pattern": "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$", + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SnowflakeRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDataOnly", + "AllData" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "Schema": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "SnowflakeRoleConfiguration": { + "$ref": "#/definitions/SnowflakeRoleConfiguration" + }, + "SnowflakeVpcConfiguration": { + "$ref": "#/definitions/SnowflakeVpcConfiguration" + }, + "Table": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "User": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "AccountUrl", + "Database", + "Schema", + "Table", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "SnowflakeRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "SnowflakeRoleConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SnowflakeRole": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "SnowflakeVpcConfiguration": { + "additionalProperties": false, + "properties": { + "PrivateLinkVpceId": { + "maxLength": 255, + "minLength": 47, + "pattern": "([a-zA-Z0-9\\-\\_]+\\.){2,3}vpce\\.[a-zA-Z0-9\\-]*\\.vpce-svc\\-[a-zA-Z0-9\\-]{17}$", + "type": "string" + } + }, + "required": [ + "PrivateLinkVpceId" + ], + "type": "object" + }, + "SplunkBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "SplunkDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/SplunkBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "HECAcknowledgmentTimeoutInSeconds": { + "maximum": 600, + "minimum": 180, + "type": "integer" + }, + "HECEndpoint": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "HECEndpointType": { + "enum": [ + "Raw", + "Event" + ], + "type": "string" + }, + "HECToken": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SplunkRetryOptions" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SecretsManagerConfiguration": { + "$ref": "#/definitions/SecretsManagerConfiguration" + } + }, + "required": [ + "HECEndpoint", + "S3Configuration", + "HECEndpointType" + ], + "type": "object" + }, + "SplunkRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "VpcConfiguration": { + "additionalProperties": false, + "properties": { + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/GroupId", + "typeName": "AWS::EC2::SecurityGroup" + }, + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "maxLength": 1024, + "minLength": 1, + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::Subnet" + }, + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "RoleARN", + "SubnetIds", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "firehose:CreateDeliveryStream", + "firehose:DescribeDeliveryStream", + "iam:GetRole", + "iam:PassRole", + "kms:CreateGrant", + "kms:DescribeKey" + ] + }, + "delete": { + "permissions": [ + "firehose:DeleteDeliveryStream", + "firehose:DescribeDeliveryStream", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + }, + "list": { + "permissions": [ + "firehose:ListDeliveryStreams" + ] + }, + "read": { + "permissions": [ + "firehose:DescribeDeliveryStream", + "firehose:ListTagsForDeliveryStream" + ] + }, + "update": { + "permissions": [ + "firehose:UpdateDestination", + "firehose:DescribeDeliveryStream", + "firehose:StartDeliveryStreamEncryption", + "firehose:StopDeliveryStreamEncryption", + "firehose:ListTagsForDeliveryStream", + "firehose:TagDeliveryStream", + "firehose:UntagDeliveryStream", + "kms:CreateGrant", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + } + }, + "primaryIdentifier": [ + "/properties/DeliveryStreamName" + ], + "properties": { + "AmazonOpenSearchServerlessDestinationConfiguration": { + "$ref": "#/definitions/AmazonOpenSearchServerlessDestinationConfiguration" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "$ref": "#/definitions/AmazonopensearchserviceDestinationConfiguration" + }, + "Arn": { + "type": "string" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/DeliveryStreamEncryptionConfigurationInput" + }, + "DeliveryStreamName": { + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9._-]+", + "type": "string" + }, + "DeliveryStreamType": { + "enum": [ + "DirectPut", + "KinesisStreamAsSource", + "MSKAsSource" + ], + "type": "string" + }, + "ElasticsearchDestinationConfiguration": { + "$ref": "#/definitions/ElasticsearchDestinationConfiguration" + }, + "ExtendedS3DestinationConfiguration": { + "$ref": "#/definitions/ExtendedS3DestinationConfiguration" + }, + "HttpEndpointDestinationConfiguration": { + "$ref": "#/definitions/HttpEndpointDestinationConfiguration" + }, + "KinesisStreamSourceConfiguration": { + "$ref": "#/definitions/KinesisStreamSourceConfiguration" + }, + "MSKSourceConfiguration": { + "$ref": "#/definitions/MSKSourceConfiguration" + }, + "RedshiftDestinationConfiguration": { + "$ref": "#/definitions/RedshiftDestinationConfiguration" + }, + "S3DestinationConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SnowflakeDestinationConfiguration": { + "$ref": "#/definitions/SnowflakeDestinationConfiguration" + }, + "SplunkDestinationConfiguration": { + "$ref": "#/definitions/SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "typeName": "AWS::KinesisFirehose::DeliveryStream" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-dbcluster.json similarity index 97% rename from src/cfnlint/data/schemas/providers/eu_south_2/aws-rds-dbcluster.json rename to src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-dbcluster.json index 3355402afa..fc8608c49b 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-rds-dbcluster.json +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-dbcluster.json @@ -444,6 +444,17 @@ "/properties/StorageThroughput" ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "tagging": { + "cloudFormationSystemTags": true, + "permissions": [ + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, "typeName": "AWS::RDS::DBCluster", "writeOnlyProperties": [ "/properties/DBInstanceParameterGroupName", diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-dbinstance.json new file mode 100644 index 0000000000..3263d77fb7 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-dbinstance.json @@ -0,0 +1,620 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AutoMinorVersionUpgrade", + "/properties/AvailabilityZone", + "/properties/BackupRetentionPeriod", + "/properties/DBClusterSnapshotIdentifier", + "/properties/DBParameterGroupName", + "/properties/DBSnapshotIdentifier", + "/properties/Engine", + "/properties/MultiAZ", + "/properties/PerformanceInsightsKMSKeyId", + "/properties/PreferredMaintenanceWindow", + "/properties/RestoreTime", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceDBInstanceAutomatedBackupsArn", + "/properties/SourceDBInstanceIdentifier", + "/properties/SourceDbiResourceId", + "/properties/StorageType", + "/properties/UseLatestRestorableTime" + ], + "createOnlyProperties": [ + "/properties/CharacterSetName", + "/properties/CustomIAMInstanceProfile", + "/properties/DBClusterIdentifier", + "/properties/DBInstanceIdentifier", + "/properties/DBName", + "/properties/DBSubnetGroupName", + "/properties/KmsKeyId", + "/properties/MasterUsername", + "/properties/NcharCharacterSetName", + "/properties/Port", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/Timezone" + ], + "definitions": { + "CertificateDetails": { + "additionalProperties": false, + "properties": { + "CAIdentifier": { + "type": "string" + }, + "ValidTill": { + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "DBInstanceRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "FeatureName", + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "HostedZoneId": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ProcessorFeature": { + "additionalProperties": false, + "properties": { + "Name": { + "enum": [ + "coreCount", + "threadsPerCore" + ], + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "KmsKeyId": { + "properties": { + "StorageEncrypted": { + "enum": [ + "true", + "True", + true + ] + } + }, + "required": [ + "StorageEncrypted" + ] + } + }, + "dependentExcluded": { + "SourceDBInstanceIdentifier": [ + "CharacterSetName", + "MasterUserPassword", + "MasterUsername", + "StorageEncrypted" + ] + }, + "deprecatedProperties": [ + "/properties/TdeCredentialArn", + "/properties/TdeCredentialPassword" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeAccountAttributes", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeInternetGateways", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcAttribute", + "ec2:DescribeVpcs", + "iam:CreateServiceLinkedRole", + "iam:GetRole", + "iam:ListRoles", + "iam:PassRole", + "kms:CreateGrant", + "kms:DescribeKey", + "rds:AddRoleToDBInstance", + "rds:AddTagsToResource", + "rds:CreateDBInstance", + "rds:CreateDBInstanceReadReplica", + "rds:DescribeDBInstances", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBInstanceAutomatedBackups", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:ModifyDBInstance", + "rds:RebootDBInstance", + "rds:RestoreDBInstanceFromDBSnapshot", + "rds:RestoreDBInstanceToPointInTime", + "rds:StartDBInstanceAutomatedBackupsReplication", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBSnapshot", + "rds:DeleteDBInstance", + "rds:DescribeDBInstances" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "rds:DescribeDBInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeAccountAttributes", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeInternetGateways", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcAttribute", + "ec2:DescribeVpcs", + "rds:DescribeDBInstances" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeAccountAttributes", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeInternetGateways", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcAttribute", + "ec2:DescribeVpcs", + "iam:CreateServiceLinkedRole", + "iam:GetRole", + "iam:ListRoles", + "iam:PassRole", + "kms:CreateGrant", + "kms:DescribeKey", + "rds:AddRoleToDBInstance", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBEngineVersions", + "rds:DescribeDBInstances", + "rds:DescribeDBParameterGroups", + "rds:DescribeEvents", + "rds:ModifyDBInstance", + "rds:PromoteReadReplica", + "rds:RebootDBInstance", + "rds:RemoveRoleFromDBInstance", + "rds:RemoveTagsFromResource", + "rds:StartDBInstanceAutomatedBackupsReplication", + "rds:StopDBInstanceAutomatedBackupsReplication", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBInstanceIdentifier" + ], + "properties": { + "AllocatedStorage": { + "pattern": "^[0-9]*$", + "type": "string" + }, + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBInstanceRole" + }, + "type": "array" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AutomaticBackupReplicationKmsKeyId": { + "type": "string" + }, + "AutomaticBackupReplicationRegion": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 0, + "type": "integer" + }, + "CACertificateIdentifier": { + "type": "string" + }, + "CertificateDetails": { + "$ref": "#/definitions/CertificateDetails" + }, + "CertificateRotationRestart": { + "type": "boolean" + }, + "CharacterSetName": { + "type": "string" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "CustomIAMInstanceProfile": { + "type": "string" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBClusterSnapshotIdentifier": { + "type": "string" + }, + "DBInstanceArn": { + "type": "string" + }, + "DBInstanceClass": { + "type": "string" + }, + "DBInstanceIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBName": { + "type": "string" + }, + "DBParameterGroupName": { + "type": "string" + }, + "DBSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "DBSnapshotIdentifier": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DbiResourceId": { + "type": "string" + }, + "DedicatedLogVolume": { + "type": "boolean" + }, + "DeleteAutomatedBackups": { + "type": "boolean" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainAuthSecretArn": { + "type": "string" + }, + "DomainDnsIps": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DomainFqdn": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "DomainOu": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnablePerformanceInsights": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "LicenseModel": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", + "type": "string" + }, + "MaxAllocatedStorage": { + "type": "integer" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "MultiAZ": { + "type": "boolean" + }, + "NcharCharacterSetName": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "OptionGroupName": { + "type": "string" + }, + "PerformanceInsightsKMSKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "enum": [ + 7, + 31, + 62, + 93, + 124, + 155, + 186, + 217, + 248, + 279, + 310, + 341, + 372, + 403, + 434, + 465, + 496, + 527, + 558, + 589, + 620, + 651, + 682, + 713, + 731 + ], + "type": "integer" + }, + "Port": { + "pattern": "^\\d*$", + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ProcessorFeatures": { + "items": { + "$ref": "#/definitions/ProcessorFeature" + }, + "type": "array" + }, + "PromotionTier": { + "default": 1, + "maximum": 15, + "minimum": 0, + "type": "integer" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReplicaMode": { + "type": "string" + }, + "RestoreTime": { + "format": "date-time", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceDBInstanceAutomatedBackupsArn": { + "type": "string" + }, + "SourceDBInstanceIdentifier": { + "type": "string" + }, + "SourceDbiResourceId": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TdeCredentialArn": { + "type": "string" + }, + "TdeCredentialPassword": { + "type": "string" + }, + "Timezone": { + "type": "string" + }, + "UseDefaultProcessorFeatures": { + "type": "boolean" + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VPCSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", + "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", + "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", + "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", + "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/OptionGroupName": "$lowercase(OptionGroupName)", + "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", + "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/Endpoint/HostedZoneId", + "/properties/DbiResourceId", + "/properties/DBInstanceArn", + "/properties/DBSystemId", + "/properties/MasterUserSecret/SecretArn", + "/properties/CertificateDetails/CAIdentifier", + "/properties/CertificateDetails/ValidTill" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::RDS::DBInstance", + "writeOnlyProperties": [ + "/properties/AllowMajorVersionUpgrade", + "/properties/AutomaticBackupReplicationKmsKeyId", + "/properties/CertificateRotationRestart", + "/properties/DBSnapshotIdentifier", + "/properties/DeleteAutomatedBackups", + "/properties/MasterUserPassword", + "/properties/Port", + "/properties/RestoreTime", + "/properties/SourceDBInstanceAutomatedBackupsArn", + "/properties/SourceDBInstanceIdentifier", + "/properties/SourceDbiResourceId", + "/properties/SourceRegion", + "/properties/TdeCredentialPassword", + "/properties/UseDefaultProcessorFeatures", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-integration.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-integration.json new file mode 100644 index 0000000000..8bb00c0dfe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-integration.json @@ -0,0 +1,154 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SourceArn", + "/properties/TargetArn", + "/properties/KMSKeyId", + "/properties/AdditionalEncryptionContext" + ], + "definitions": { + "EncryptionContextMap": { + "additionalProperties": false, + "patternProperties": { + "^[\\s\\S]*$": { + "maxLength": 131072, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "handlers": { + "create": { + "permissions": [ + "rds:CreateIntegration", + "rds:DescribeIntegrations", + "rds:AddTagsToResource", + "kms:CreateGrant", + "kms:DescribeKey", + "redshift:CreateInboundIntegration" + ] + }, + "delete": { + "permissions": [ + "rds:DeleteIntegration", + "rds:DescribeIntegrations" + ] + }, + "list": { + "permissions": [ + "rds:DescribeIntegrations" + ] + }, + "read": { + "permissions": [ + "rds:DescribeIntegrations" + ] + }, + "update": { + "permissions": [ + "rds:DescribeIntegrations", + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource", + "rds:ModifyIntegration" + ] + } + }, + "primaryIdentifier": [ + "/properties/IntegrationArn" + ], + "properties": { + "AdditionalEncryptionContext": { + "$ref": "#/definitions/EncryptionContextMap" + }, + "CreateTime": { + "type": "string" + }, + "DataFilter": { + "maxLength": 25600, + "minLength": 1, + "pattern": "[a-zA-Z0-9_ \"\\\\\\-$,*.:?+\\/]*", + "type": "string" + }, + "Description": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + }, + "IntegrationArn": { + "type": "string" + }, + "IntegrationName": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "KMSKeyId": { + "type": "string" + }, + "SourceArn": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "TargetArn": { + "type": "string" + } + }, + "propertyTransform": { + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/SourceArn": "$lowercase(SourceArn)" + }, + "readOnlyProperties": [ + "/properties/IntegrationArn", + "/properties/CreateTime" + ], + "required": [ + "SourceArn", + "TargetArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::RDS::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-app.json new file mode 100644 index 0000000000..d565ffb835 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-app.json @@ -0,0 +1,210 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/Tags", + "/properties/ResourceSpec" + ], + "definitions": { + "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" + }, + "SageMakerImageArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:DescribeApp" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DescribeApp" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListApps" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeApp", + "sagemaker:DescribeApp" + ] + } + }, + "primaryIdentifier": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName" + ], + "properties": { + "AppArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app/.*", + "type": "string" + }, + "AppName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "RStudioServerPro", + "RSessionGateway", + "Canvas" + ], + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "ResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/AppArn" + ], + "required": [ + "AppName", + "AppType", + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::App", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-domain.json new file mode 100644 index 0000000000..5cd4ea45fa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-domain.json @@ -0,0 +1,831 @@ +{ + "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" + } + }, + "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" + } + }, + "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/cn_northwest_1/aws-sagemaker-model.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-model.json new file mode 100644 index 0000000000..ef768bc0ed --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-model.json @@ -0,0 +1,235 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ExecutionRoleArn", + "/properties/EnableNetworkIsolation", + "/properties/InferenceExecutionConfig", + "/properties/PrimaryContainer", + "/properties/ModelName", + "/properties/VpcConfig", + "/properties/Containers" + ], + "definitions": { + "ContainerDefinition": { + "additionalProperties": false, + "properties": { + "ContainerHostname": { + "type": "string" + }, + "Environment": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Image": { + "type": "string" + }, + "ImageConfig": { + "$ref": "#/definitions/ImageConfig" + }, + "InferenceSpecificationName": { + "type": "string" + }, + "Mode": { + "type": "string" + }, + "ModelDataSource": { + "$ref": "#/definitions/ModelDataSource" + }, + "ModelDataUrl": { + "type": "string" + }, + "ModelPackageName": { + "type": "string" + }, + "MultiModelConfig": { + "$ref": "#/definitions/MultiModelConfig" + } + }, + "type": "object" + }, + "ImageConfig": { + "additionalProperties": false, + "properties": { + "RepositoryAccessMode": { + "type": "string" + }, + "RepositoryAuthConfig": { + "$ref": "#/definitions/RepositoryAuthConfig" + } + }, + "required": [ + "RepositoryAccessMode" + ], + "type": "object" + }, + "InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "ModelAccessConfig": { + "additionalProperties": false, + "properties": { + "AcceptEula": { + "type": "boolean" + } + }, + "required": [ + "AcceptEula" + ], + "type": "object" + }, + "ModelDataSource": { + "additionalProperties": false, + "properties": { + "S3DataSource": { + "$ref": "#/definitions/S3DataSource" + } + }, + "required": [ + "S3DataSource" + ], + "type": "object" + }, + "MultiModelConfig": { + "additionalProperties": false, + "properties": { + "ModelCacheSetting": { + "type": "string" + } + }, + "type": "object" + }, + "RepositoryAuthConfig": { + "additionalProperties": false, + "properties": { + "RepositoryCredentialsProviderArn": { + "type": "string" + } + }, + "required": [ + "RepositoryCredentialsProviderArn" + ], + "type": "object" + }, + "S3DataSource": { + "additionalProperties": false, + "properties": { + "CompressionType": { + "type": "string" + }, + "ModelAccessConfig": { + "$ref": "#/definitions/ModelAccessConfig" + }, + "S3DataType": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "S3Uri", + "S3DataType", + "CompressionType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Subnets", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/ContainerDefinition" + }, + "type": "array", + "uniqueItems": false + }, + "EnableNetworkIsolation": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/InferenceExecutionConfig" + }, + "ModelName": { + "type": "string" + }, + "PrimaryContainer": { + "$ref": "#/definitions/ContainerDefinition" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcConfig": { + "$ref": "#/definitions/VpcConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SageMaker::Model" +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..c2c0daf9fe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sagemaker-userprofile.json @@ -0,0 +1,592 @@ +{ + "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" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "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" + }, + "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/cn_northwest_1/aws-secretsmanager-resourcepolicy.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-secretsmanager-resourcepolicy.json new file mode 100644 index 0000000000..92fc7be26c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/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/cn_northwest_1/aws-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-stepfunctions-activity.json deleted file mode 100644 index 7aaf191ed1..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-stepfunctions-activity.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateActivity", - "states:TagResource" - ] - }, - "delete": { - "permissions": [ - "states:DescribeActivity", - "states:DeleteActivity" - ] - }, - "list": { - "permissions": [ - "states:ListActivities" - ] - }, - "read": { - "permissions": [ - "states:DescribeActivity", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:ListTagsForResource", - "states:TagResource", - "states:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::Activity" -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-stepfunctions-statemachine.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-stepfunctions-statemachine.json deleted file mode 100644 index c8a1b0f42e..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-stepfunctions-statemachine.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/StateMachineName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StateMachineName", - "/properties/StateMachineType" - ], - "definitions": { - "CloudWatchLogsLogGroup": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Definition": { - "minProperties": 1, - "type": "object" - }, - "DefinitionSubstitutions": { - "additionalProperties": false, - "minProperties": 1, - "patternProperties": { - ".*": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer" - }, - { - "type": "boolean" - } - ] - } - }, - "type": "object" - }, - "LogDestination": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsLogGroup": { - "$ref": "#/definitions/CloudWatchLogsLogGroup" - } - }, - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "Destinations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LogDestination" - }, - "minItems": 1, - "type": "array" - }, - "IncludeExecutionData": { - "type": "boolean" - }, - "Level": { - "enum": [ - "ALL", - "ERROR", - "FATAL", - "OFF" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TracingConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateStateMachine", - "states:DescribeStateMachine", - "states:TagResource", - "iam:PassRole", - "s3:GetObject" - ] - }, - "delete": { - "permissions": [ - "states:DeleteStateMachine", - "states:DescribeStateMachine" - ] - }, - "list": { - "permissions": [ - "states:ListStateMachines" - ] - }, - "read": { - "permissions": [ - "states:DescribeStateMachine", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:UpdateStateMachine", - "states:TagResource", - "states:UntagResource", - "states:ListTagsForResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Definition": { - "$ref": "#/definitions/Definition" - }, - "DefinitionS3Location": { - "$ref": "#/definitions/S3Location" - }, - "DefinitionString": { - "maxLength": 1048576, - "minLength": 1, - "type": "string" - }, - "DefinitionSubstitutions": { - "$ref": "#/definitions/DefinitionSubstitutions" - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "RoleArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineName": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "StateMachineRevisionId": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineType": { - "enum": [ - "STANDARD", - "EXPRESS" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - }, - "TracingConfiguration": { - "$ref": "#/definitions/TracingConfiguration" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/StateMachineRevisionId" - ], - "required": [ - "RoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::StepFunctions::StateMachine", - "writeOnlyProperties": [ - "/properties/Definition", - "/properties/DefinitionS3Location", - "/properties/DefinitionSubstitutions" - ] -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-xray-group.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-xray-group.json new file mode 100644 index 0000000000..658d9b8484 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-xray-group.json @@ -0,0 +1,105 @@ +{ + "additionalProperties": false, + "definitions": { + "InsightsConfiguration": { + "additionalProperties": false, + "properties": { + "InsightsEnabled": { + "type": "boolean" + }, + "NotificationsEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "handlers": { + "create": { + "permissions": [ + "xray:CreateGroup", + "xray:TagResource" + ] + }, + "delete": { + "permissions": [ + "xray:DeleteGroup" + ] + }, + "list": { + "permissions": [ + "xray:GetGroups", + "xray:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "xray:GetGroup", + "xray:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "xray:UpdateGroup", + "xray:TagResource", + "xray:UntagResource", + "xray:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/GroupARN" + ], + "properties": { + "FilterExpression": { + "type": "string" + }, + "GroupARN": { + "maxLength": 400, + "minLength": 1, + "type": "string" + }, + "GroupName": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "InsightsConfiguration": { + "$ref": "#/definitions/InsightsConfiguration" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "readOnlyProperties": [ + "/properties/GroupARN" + ], + "required": [ + "GroupName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::XRay::Group" +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-xray-samplingrule.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-xray-samplingrule.json new file mode 100644 index 0000000000..7ed7156ff8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-xray-samplingrule.json @@ -0,0 +1,255 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SamplingRule/Version" + ], + "definitions": { + "RuleARN": { + "type": "string" + }, + "RuleName": { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "SamplingRule": { + "additionalProperties": false, + "properties": { + "Attributes": { + "$comment": "String to string map", + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "FixedRate": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "HTTPMethod": { + "maxLength": 10, + "type": "string" + }, + "Host": { + "maxLength": 64, + "type": "string" + }, + "Priority": { + "maximum": 9999, + "minimum": 1, + "type": "integer" + }, + "ReservoirSize": { + "minimum": 0, + "type": "integer" + }, + "ResourceARN": { + "maxLength": 500, + "type": "string" + }, + "RuleARN": { + "$ref": "#/definitions/RuleARN" + }, + "RuleName": { + "$ref": "#/definitions/RuleName" + }, + "ServiceName": { + "maxLength": 64, + "type": "string" + }, + "ServiceType": { + "maxLength": 64, + "type": "string" + }, + "URLPath": { + "maxLength": 128, + "type": "string" + }, + "Version": { + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "FixedRate", + "Host", + "HTTPMethod", + "Priority", + "ReservoirSize", + "ResourceARN", + "ServiceName", + "ServiceType", + "URLPath" + ], + "type": "object" + }, + "SamplingRuleRecord": { + "additionalProperties": false, + "properties": { + "CreatedAt": { + "type": "string" + }, + "ModifiedAt": { + "type": "string" + }, + "SamplingRule": { + "$ref": "#/definitions/SamplingRule" + } + }, + "type": "object" + }, + "SamplingRuleUpdate": { + "additionalProperties": false, + "properties": { + "Attributes": { + "$comment": "String to string map", + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "FixedRate": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "HTTPMethod": { + "maxLength": 10, + "type": "string" + }, + "Host": { + "maxLength": 64, + "type": "string" + }, + "Priority": { + "maximum": 9999, + "minimum": 1, + "type": "integer" + }, + "ReservoirSize": { + "minimum": 0, + "type": "integer" + }, + "ResourceARN": { + "maxLength": 500, + "type": "string" + }, + "RuleARN": { + "$ref": "#/definitions/RuleARN" + }, + "RuleName": { + "$ref": "#/definitions/RuleName" + }, + "ServiceName": { + "maxLength": 64, + "type": "string" + }, + "ServiceType": { + "maxLength": 64, + "type": "string" + }, + "URLPath": { + "maxLength": 128, + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "deprecatedProperties": [ + "/properties/RuleName", + "/properties/SamplingRuleRecord", + "/properties/SamplingRuleUpdate" + ], + "handlers": { + "create": { + "permissions": [ + "xray:CreateSamplingRule", + "xray:TagResource" + ] + }, + "delete": { + "permissions": [ + "xray:DeleteSamplingRule" + ] + }, + "list": { + "permissions": [ + "xray:GetSamplingRules", + "xray:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "xray:GetSamplingRules", + "xray:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "xray:UpdateSamplingRule", + "xray:TagResource", + "xray:UntagResource", + "xray:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleARN" + ], + "properties": { + "RuleARN": { + "$ref": "#/definitions/RuleARN" + }, + "RuleName": { + "$ref": "#/definitions/RuleName" + }, + "SamplingRule": { + "$ref": "#/definitions/SamplingRule" + }, + "SamplingRuleRecord": { + "$ref": "#/definitions/SamplingRuleRecord" + }, + "SamplingRuleUpdate": { + "$ref": "#/definitions/SamplingRuleUpdate" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "readOnlyProperties": [ + "/properties/RuleARN" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::XRay::SamplingRule" +} 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 745ff4404e..ab83bc42a4 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py @@ -9,6 +9,7 @@ "AWS::APS::RuleGroupsNamespace", "AWS::APS::Scraper", "AWS::APS::Workspace", + "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus", "AWS::ARCZonalShift::ZonalAutoshiftConfiguration", "AWS::AccessAnalyzer::Analyzer", "AWS::AmazonMQ::Broker", @@ -1341,6 +1342,7 @@ "aws-aps-rulegroupsnamespace.json", "aws-aps-scraper.json", "aws-aps-workspace.json", + "aws-arczonalshift-autoshiftobservernotificationstatus.json", "aws-arczonalshift-zonalautoshiftconfiguration.json", "aws-athena-datacatalog.json", "aws-athena-namedquery.json", @@ -1369,9 +1371,14 @@ "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", @@ -1389,7 +1396,6 @@ "aws-cleanrooms-configuredtableassociation.json", "aws-cleanrooms-membership.json", "aws-cleanrooms-privacybudgettemplate.json", - "aws-cleanroomsml-trainingdataset.json", "aws-cloud9-environmentec2.json", "aws-cloudformation-customresource.json", "aws-cloudformation-hookdefaultversion.json", @@ -1567,6 +1573,7 @@ "aws-dms-eventsubscription.json", "aws-dms-instanceprofile.json", "aws-dms-migrationproject.json", + "aws-dms-replicationconfig.json", "aws-dms-replicationinstance.json", "aws-dms-replicationsubnetgroup.json", "aws-dms-replicationtask.json", @@ -1605,6 +1612,7 @@ "aws-ec2-ipamresourcediscovery.json", "aws-ec2-ipamresourcediscoveryassociation.json", "aws-ec2-ipamscope.json", + "aws-ec2-keypair.json", "aws-ec2-launchtemplate.json", "aws-ec2-localgatewayroute.json", "aws-ec2-localgatewayroutetable.json", @@ -1624,7 +1632,6 @@ "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", @@ -1664,7 +1671,6 @@ "aws-ec2-vpcpeeringconnection.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", @@ -1682,6 +1688,7 @@ "aws-efs-mounttarget.json", "aws-eks-accessentry.json", "aws-eks-addon.json", + "aws-eks-cluster.json", "aws-eks-fargateprofile.json", "aws-eks-identityproviderconfig.json", "aws-eks-nodegroup.json", @@ -1842,7 +1849,6 @@ "aws-inspector-assessmenttarget.json", "aws-inspector-assessmenttemplate.json", "aws-inspector-resourcegroup.json", - "aws-inspectorv2-cisscanconfiguration.json", "aws-inspectorv2-filter.json", "aws-internetmonitor-monitor.json", "aws-iot-accountauditconfiguration.json", @@ -1920,7 +1926,6 @@ "aws-ivs-storageconfiguration.json", "aws-ivs-streamkey.json", "aws-ivschat-loggingconfiguration.json", - "aws-ivschat-room.json", "aws-kafkaconnect-connector.json", "aws-kafkaconnect-customplugin.json", "aws-kafkaconnect-workerconfiguration.json", @@ -2096,6 +2101,7 @@ "aws-opsworks-volume.json", "aws-opsworkscm-server.json", "aws-organizations-account.json", + "aws-organizations-organization.json", "aws-organizations-organizationalunit.json", "aws-organizations-policy.json", "aws-organizations-resourcepolicy.json", @@ -2149,7 +2155,9 @@ "aws-ram-permission.json", "aws-ram-resourceshare.json", "aws-rds-customdbengineversion.json", + "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", + "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", "aws-rds-dbproxy.json", "aws-rds-dbproxyendpoint.json", @@ -2194,7 +2202,6 @@ "aws-rolesanywhere-crl.json", "aws-rolesanywhere-profile.json", "aws-rolesanywhere-trustanchor.json", - "aws-route53-cidrcollection.json", "aws-route53-dnssec.json", "aws-route53-healthcheck.json", "aws-route53-hostedzone.json", @@ -2232,13 +2239,11 @@ "aws-s3outposts-bucket.json", "aws-s3outposts-bucketpolicy.json", "aws-s3outposts-endpoint.json", - "aws-sagemaker-app.json", "aws-sagemaker-appimageconfig.json", "aws-sagemaker-coderepository.json", "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", @@ -2251,7 +2256,6 @@ "aws-sagemaker-modelbiasjobdefinition.json", "aws-sagemaker-modelcard.json", "aws-sagemaker-modelexplainabilityjobdefinition.json", - "aws-sagemaker-modelpackage.json", "aws-sagemaker-modelpackagegroup.json", "aws-sagemaker-modelqualityjobdefinition.json", "aws-sagemaker-monitoringschedule.json", @@ -2259,12 +2263,11 @@ "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-sagemaker-pipeline.json", "aws-sagemaker-project.json", - "aws-sagemaker-space.json", - "aws-sagemaker-userprofile.json", "aws-sagemaker-workteam.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-secretsmanager-secrettargetattachment.json", @@ -2277,7 +2280,6 @@ "aws-securityhub-organizationconfiguration.json", "aws-securityhub-policyassociation.json", "aws-securityhub-productsubscription.json", - "aws-securityhub-securitycontrol.json", "aws-securityhub-standard.json", "aws-securitylake-awslogsource.json", "aws-securitylake-datalake.json", @@ -2327,6 +2329,7 @@ "aws-shield-drtaccess.json", "aws-shield-proactiveengagement.json", "aws-shield-protection.json", + "aws-shield-protectiongroup.json", "aws-signer-profilepermission.json", "aws-signer-signingprofile.json", "aws-simspaceweaver-simulation.json", @@ -2429,8 +2432,10 @@ "aws-workspacesweb-identityprovider.json", "aws-workspacesweb-ipaccesssettings.json", "aws-workspacesweb-networksettings.json", + "aws-workspacesweb-portal.json", "aws-workspacesweb-truststore.json", "aws-workspacesweb-useraccessloggingsettings.json", + "aws-workspacesweb-usersettings.json", "aws-xray-group.json", "aws-xray-resourcepolicy.json", "aws-xray-samplingrule.json", diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-cleanroomsml-trainingdataset.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-cleanroomsml-trainingdataset.json new file mode 100644 index 0000000000..bdb81299cb --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-cleanroomsml-trainingdataset.json @@ -0,0 +1,249 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Description", + "/properties/Name", + "/properties/RoleArn", + "/properties/TrainingData" + ], + "definitions": { + "ColumnSchema": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "ColumnTypes": { + "items": { + "$ref": "#/definitions/ColumnType" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ColumnName", + "ColumnTypes" + ], + "type": "object" + }, + "ColumnType": { + "enum": [ + "USER_ID", + "ITEM_ID", + "TIMESTAMP", + "CATEGORICAL_FEATURE", + "NUMERICAL_FEATURE" + ], + "type": "string" + }, + "DataSource": { + "additionalProperties": false, + "properties": { + "GlueDataSource": { + "$ref": "#/definitions/GlueDataSource" + } + }, + "required": [ + "GlueDataSource" + ], + "type": "object" + }, + "Dataset": { + "additionalProperties": false, + "properties": { + "InputConfig": { + "$ref": "#/definitions/DatasetInputConfig" + }, + "Type": { + "$ref": "#/definitions/DatasetType" + } + }, + "required": [ + "InputConfig", + "Type" + ], + "type": "object" + }, + "DatasetInputConfig": { + "additionalProperties": false, + "properties": { + "DataSource": { + "$ref": "#/definitions/DataSource" + }, + "Schema": { + "items": { + "$ref": "#/definitions/ColumnSchema" + }, + "maxItems": 100, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "DataSource", + "Schema" + ], + "type": "object" + }, + "DatasetType": { + "enum": [ + "INTERACTIONS" + ], + "type": "string" + }, + "GlueDataSource": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "DatabaseName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_]+-)*([a-zA-Z0-9_]+))?$", + "type": "string" + }, + "TableName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + } + }, + "required": [ + "DatabaseName", + "TableName" + ], + "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" + }, + "TrainingDatasetStatus": { + "enum": [ + "ACTIVE" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms-ml:CreateTrainingDataset", + "cleanrooms-ml:GetTrainingDataset", + "cleanrooms-ml:TagResource", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "cleanrooms-ml:DeleteTrainingDataset" + ] + }, + "list": { + "permissions": [ + "cleanrooms-ml:ListTrainingDatasets" + ] + }, + "read": { + "permissions": [ + "cleanrooms-ml:GetTrainingDataset" + ] + }, + "update": { + "permissions": [ + "cleanrooms-ml:TagResource", + "cleanrooms-ml:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/TrainingDatasetArn" + ], + "properties": { + "Description": { + "maxLength": 255, + "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", + "type": "string" + }, + "Name": { + "maxLength": 63, + "minLength": 1, + "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[-a-z]*:iam::[0-9]{12}:role/.+$", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/TrainingDatasetStatus" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TrainingData": { + "items": { + "$ref": "#/definitions/Dataset" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "TrainingDatasetArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:training-dataset/[-a-zA-Z0-9_/.]+$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Status", + "/properties/TrainingDatasetArn" + ], + "required": [ + "Name", + "RoleArn", + "TrainingData" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRoomsML::TrainingDataset" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-dms-replicationconfig.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-dms-replicationconfig.json deleted file mode 100644 index 83b9074702..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-dms-replicationconfig.json +++ /dev/null @@ -1,204 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicationConfigIdentifier" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ResourceIdentifier" - ], - "definitions": { - "ComputeConfig": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "type": "string" - }, - "DnsNameServers": { - "type": "string" - }, - "KmsKeyId": { - "type": "string" - }, - "MaxCapacityUnits": { - "type": "integer" - }, - "MinCapacityUnits": { - "type": "integer" - }, - "MultiAZ": { - "type": "boolean" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ReplicationSubnetGroupId": { - "type": "string" - }, - "VpcSecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "MaxCapacityUnits" - ], - "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" - } - }, - "handlers": { - "create": { - "permissions": [ - "dms:CreateReplicationConfig", - "dms:AddTagsToResource", - "dms:ListTagsForResource", - "iam:CreateServiceLinkedRole", - "iam:AttachRolePolicy", - "iam:PutRolePolicy", - "iam:UpdateRoleDescription" - ] - }, - "delete": { - "permissions": [ - "dms:DescribeReplicationConfigs", - "dms:DeleteReplicationConfig", - "dms:ListTagsForResource", - "iam:DeleteServiceLinkedRole", - "iam:GetServiceLinkedRoleDeletionStatus" - ] - }, - "list": { - "permissions": [ - "dms:DescribeReplicationConfigs", - "dms:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "dms:DescribeReplicationConfigs", - "dms:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "dms:ModifyReplicationConfig", - "dms:AddTagsToResource", - "dms:RemoveTagsFromResource", - "dms:ListTagsForResource", - "iam:CreateServiceLinkedRole", - "iam:AttachRolePolicy", - "iam:PutRolePolicy", - "iam:UpdateRoleDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicationConfigArn" - ], - "properties": { - "ComputeConfig": { - "$ref": "#/definitions/ComputeConfig" - }, - "ReplicationConfigArn": { - "type": "string" - }, - "ReplicationConfigIdentifier": { - "type": "string" - }, - "ReplicationSettings": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "ReplicationType": { - "enum": [ - "full-load", - "full-load-and-cdc", - "cdc" - ], - "type": "string" - }, - "ResourceIdentifier": { - "type": "string" - }, - "SourceEndpointArn": { - "type": "string" - }, - "SupplementalSettings": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "TableMappings": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 1, - "type": "array" - }, - "TargetEndpointArn": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/ReplicationConfigArn" - ], - "required": [ - "ReplicationConfigIdentifier", - "SourceEndpointArn", - "TargetEndpointArn", - "ReplicationType", - "ComputeConfig", - "TableMappings" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-dms", - "tagging": { - "cloudFormationSystemTags": false, - "permissions": [ - "dms:AddTagsToResource", - "dms:ListTagsForResource", - "dms:RemoveTagsFromResource" - ], - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::DMS::ReplicationConfig" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-securitygroup.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-securitygroup.json new file mode 100644 index 0000000000..8ab5cdc451 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-securitygroup.json @@ -0,0 +1,240 @@ +{ + "$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:DescribeSecurityGroups", + "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_1/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-vpnconnection.json index 769330c57d..0e94eb57e5 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-vpnconnection.json +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-vpnconnection.json @@ -6,6 +6,7 @@ "/properties/CustomerGatewayId", "/properties/VpnGatewayId", "/properties/TransitGatewayId", + "/properties/EnableAcceleration", "/properties/VpnTunnelOptionsSpecifications", "/properties/StaticRoutesOnly" ], @@ -78,6 +79,9 @@ "CustomerGatewayId": { "type": "string" }, + "EnableAcceleration": { + "type": "boolean" + }, "StaticRoutesOnly": { "type": "boolean" }, diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-vpngatewayroutepropagation.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-vpngatewayroutepropagation.json new file mode 100644 index 0000000000..95e415765e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-vpngatewayroutepropagation.json @@ -0,0 +1,57 @@ +{ + "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", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::EC2::VPNGatewayRoutePropagation" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-eks-cluster.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-eks-cluster.json deleted file mode 100644 index 174109bffd..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-eks-cluster.json +++ /dev/null @@ -1,409 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/OutpostConfig", - "/properties/EncryptionConfig", - "/properties/KubernetesNetworkConfig", - "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions", - "/properties/Name", - "/properties/RoleArn", - "/properties/BootstrapSelfManagedAddons" - ], - "definitions": { - "AccessConfig": { - "additionalProperties": false, - "properties": { - "AuthenticationMode": { - "enum": [ - "CONFIG_MAP", - "API_AND_CONFIG_MAP", - "API" - ], - "type": "string" - }, - "BootstrapClusterCreatorAdminPermissions": { - "type": "boolean" - } - }, - "type": "object" - }, - "ClusterLogging": { - "additionalProperties": false, - "properties": { - "EnabledTypes": { - "$ref": "#/definitions/EnabledTypes" - } - }, - "type": "object" - }, - "ControlPlanePlacement": { - "additionalProperties": false, - "properties": { - "GroupName": { - "type": "string" - } - }, - "type": "object" - }, - "EnabledTypes": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LoggingTypeConfig" - }, - "type": "array" - }, - "EncryptionConfig": { - "additionalProperties": false, - "properties": { - "Provider": { - "$ref": "#/definitions/Provider" - }, - "Resources": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "KubernetesNetworkConfig": { - "additionalProperties": false, - "properties": { - "IpFamily": { - "enum": [ - "ipv4", - "ipv6" - ], - "type": "string" - }, - "ServiceIpv4Cidr": { - "type": "string" - }, - "ServiceIpv6Cidr": { - "type": "string" - } - }, - "type": "object" - }, - "Logging": { - "additionalProperties": false, - "properties": { - "ClusterLogging": { - "$ref": "#/definitions/ClusterLogging" - } - }, - "type": "object" - }, - "LoggingTypeConfig": { - "additionalProperties": false, - "properties": { - "Type": { - "enum": [ - "api", - "audit", - "authenticator", - "controllerManager", - "scheduler" - ], - "type": "string" - } - }, - "type": "object" - }, - "OutpostConfig": { - "additionalProperties": false, - "properties": { - "ControlPlaneInstanceType": { - "type": "string" - }, - "ControlPlanePlacement": { - "$ref": "#/definitions/ControlPlanePlacement" - }, - "OutpostArns": { - "insertionOrder": false, - "items": { - "minItems": 1, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "OutpostArns", - "ControlPlaneInstanceType" - ], - "type": "object" - }, - "Provider": { - "additionalProperties": false, - "properties": { - "KeyArn": { - "type": "string" - } - }, - "type": "object" - }, - "RemoteNodeNetwork": { - "additionalProperties": false, - "properties": { - "Cidrs": { - "insertionOrder": false, - "items": { - "minItems": 1, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Cidrs" - ], - "type": "object" - }, - "RemoteNodeNetworks": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/RemoteNodeNetwork" - }, - "type": "array" - }, - "RemotePodNetwork": { - "additionalProperties": false, - "properties": { - "Cidrs": { - "insertionOrder": false, - "items": { - "minItems": 1, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Cidrs" - ], - "type": "object" - }, - "RemotePodNetworks": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/RemotePodNetwork" - }, - "type": "array" - }, - "ResourcesVpcConfig": { - "additionalProperties": false, - "properties": { - "EndpointPrivateAccess": { - "type": "boolean" - }, - "EndpointPublicAccess": { - "type": "boolean" - }, - "PublicAccessCidrs": { - "insertionOrder": false, - "items": { - "minItems": 1, - "type": "string" - }, - "type": "array" - }, - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "minItems": 1, - "type": "string" - }, - "type": "array" - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "minItems": 1, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "SubnetIds" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "eks:CreateCluster", - "eks:DescribeCluster", - "eks:TagResource", - "iam:PassRole", - "iam:GetRole", - "iam:ListAttachedRolePolicies", - "iam:CreateServiceLinkedRole", - "iam:CreateInstanceProfile", - "iam:TagInstanceProfile", - "iam:AddRoleToInstanceProfile", - "iam:GetInstanceProfile", - "iam:DeleteInstanceProfile", - "iam:RemoveRoleFromInstanceProfile", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "kms:DescribeKey", - "kms:CreateGrant" - ] - }, - "delete": { - "permissions": [ - "eks:DeleteCluster", - "eks:DescribeCluster" - ] - }, - "list": { - "permissions": [ - "eks:ListClusters" - ] - }, - "read": { - "permissions": [ - "eks:DescribeCluster" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "eks:UpdateClusterConfig", - "eks:UpdateClusterVersion", - "eks:DescribeCluster", - "eks:DescribeUpdate", - "eks:TagResource", - "eks:UntagResource" - ], - "timeoutInMinutes": 180 - } - }, - "primaryIdentifier": [ - "/properties/Name" - ], - "properties": { - "AccessConfig": { - "$ref": "#/definitions/AccessConfig" - }, - "Arn": { - "type": "string" - }, - "BootstrapSelfManagedAddons": { - "type": "boolean" - }, - "CertificateAuthorityData": { - "type": "string" - }, - "ClusterSecurityGroupId": { - "type": "string" - }, - "EncryptionConfig": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/EncryptionConfig", - "maxItems": 1 - }, - "type": "array" - }, - "EncryptionConfigKeyArn": { - "type": "string" - }, - "Endpoint": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "KubernetesNetworkConfig": { - "$ref": "#/definitions/KubernetesNetworkConfig" - }, - "Logging": { - "$ref": "#/definitions/Logging" - }, - "Name": { - "maxLength": 100, - "minLength": 1, - "pattern": "^[0-9A-Za-z][A-Za-z0-9\\-_]*", - "type": "string" - }, - "OpenIdConnectIssuerUrl": { - "type": "string" - }, - "OutpostConfig": { - "$ref": "#/definitions/OutpostConfig" - }, - "ResourcesVpcConfig": { - "$ref": "#/definitions/ResourcesVpcConfig" - }, - "RoleArn": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Version": { - "pattern": "1\\.\\d\\d", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn", - "/properties/Endpoint", - "/properties/CertificateAuthorityData", - "/properties/ClusterSecurityGroupId", - "/properties/EncryptionConfigKeyArn", - "/properties/OpenIdConnectIssuerUrl", - "/properties/KubernetesNetworkConfig/ServiceIpv6Cidr" - ], - "required": [ - "RoleArn", - "ResourcesVpcConfig" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-eks.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EKS::Cluster", - "writeOnlyProperties": [ - "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions", - "/properties/BootstrapSelfManagedAddons" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-inspectorv2-cisscanconfiguration.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-inspectorv2-cisscanconfiguration.json new file mode 100644 index 0000000000..207b596d71 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-inspectorv2-cisscanconfiguration.json @@ -0,0 +1,245 @@ +{ + "additionalProperties": false, + "definitions": { + "CisSecurityLevel": { + "enum": [ + "LEVEL_1", + "LEVEL_2" + ], + "type": "string" + }, + "CisTagMap": { + "additionalProperties": false, + "patternProperties": { + "^.{2,127}$": { + "pattern": "^.{1,255}$", + "type": "string" + } + }, + "type": "object" + }, + "CisTargets": { + "additionalProperties": false, + "properties": { + "AccountIds": { + "items": { + "pattern": "^\\d{12}|ALL_MEMBERS|SELF$", + "type": "string" + }, + "maxItems": 10000, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "TargetResourceTags": { + "$ref": "#/definitions/TargetResourceTags" + } + }, + "required": [ + "AccountIds" + ] + }, + "DailySchedule": { + "additionalProperties": false, + "properties": { + "StartTime": { + "$ref": "#/definitions/Time" + } + }, + "required": [ + "StartTime" + ], + "type": "object" + }, + "Day": { + "enum": [ + "MON", + "TUE", + "WED", + "THU", + "FRI", + "SAT", + "SUN" + ], + "type": "string" + }, + "DaysList": { + "items": { + "$ref": "#/definitions/Day" + }, + "maxItems": 7, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "MonthlySchedule": { + "additionalProperties": false, + "properties": { + "Day": { + "$ref": "#/definitions/Day" + }, + "StartTime": { + "$ref": "#/definitions/Time" + } + }, + "required": [ + "StartTime", + "Day" + ], + "type": "object" + }, + "OneTimeSchedule": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "Schedule": { + "properties": { + "Daily": { + "$ref": "#/definitions/DailySchedule" + }, + "Monthly": { + "$ref": "#/definitions/MonthlySchedule" + }, + "OneTime": { + "$ref": "#/definitions/OneTimeSchedule" + }, + "Weekly": { + "$ref": "#/definitions/WeeklySchedule" + } + } + }, + "TagValueList": { + "items": { + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "TargetResourceTags": { + "additionalProperties": false, + "maxProperties": 5, + "patternProperties": { + "^.+$": { + "$ref": "#/definitions/TagValueList" + } + } + }, + "Time": { + "additionalProperties": false, + "properties": { + "TimeOfDay": { + "pattern": "^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$", + "type": "string" + }, + "TimeZone": { + "type": "string" + } + }, + "required": [ + "TimeOfDay", + "TimeZone" + ], + "type": "object" + }, + "WeeklySchedule": { + "additionalProperties": false, + "properties": { + "Days": { + "$ref": "#/definitions/DaysList" + }, + "StartTime": { + "$ref": "#/definitions/Time" + } + }, + "required": [ + "StartTime", + "Days" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "inspector2:CreateCisScanConfiguration", + "inspector2:ListCisScanConfigurations", + "inspector2:TagResource" + ] + }, + "delete": { + "permissions": [ + "inspector2:ListCisScanConfigurations", + "inspector2:DeleteCisScanConfiguration", + "inspector2:UntagResource" + ] + }, + "list": { + "permissions": [ + "inspector2:ListCisScanConfigurations", + "inspector2:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "inspector2:ListCisScanConfigurations", + "inspector2:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "inspector2:ListCisScanConfigurations", + "inspector2:UpdateCisScanConfiguration", + "inspector2:TagResource", + "inspector2:UntagResource", + "inspector2:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "type": "string" + }, + "ScanName": { + "minLength": 1, + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule" + }, + "SecurityLevel": { + "$ref": "#/definitions/CisSecurityLevel" + }, + "Tags": { + "$ref": "#/definitions/CisTagMap" + }, + "Targets": { + "$ref": "#/definitions/CisTargets" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "ScanName", + "SecurityLevel", + "Schedule", + "Targets" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-inspector.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::InspectorV2::CisScanConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ivschat-room.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ivschat-room.json new file mode 100644 index 0000000000..9d5445797c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ivschat-room.json @@ -0,0 +1,158 @@ +{ + "additionalProperties": false, + "definitions": { + "MessageReviewHandler": { + "additionalProperties": false, + "properties": { + "FallbackResult": { + "default": "ALLOW", + "enum": [ + "ALLOW", + "DENY" + ], + "type": "string" + }, + "Uri": { + "maxLength": 170, + "minLength": 0, + "pattern": "^$|^arn:aws:lambda:[a-z0-9-]+:[0-9]{12}:function:.+", + "type": "string" + } + }, + "required": [], + "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": [ + "ivschat:CreateRoom", + "ivschat:TagResource" + ] + }, + "delete": { + "permissions": [ + "ivschat:DeleteRoom", + "ivschat:UntagResource" + ] + }, + "list": { + "permissions": [ + "ivschat:ListRooms", + "ivschat:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "ivschat:GetRoom", + "ivschat:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ivschat:UpdateRoom", + "ivschat:TagResource", + "ivschat:UntagResource", + "ivschat:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 128, + "minLength": 1, + "pattern": "^arn:aws:ivschat:[a-z0-9-]+:[0-9]+:room/[a-zA-Z0-9-]+$", + "type": "string" + }, + "Id": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "LoggingConfigurationIdentifiers": { + "insertionOrder": false, + "items": { + "maxLength": 128, + "minLength": 1, + "pattern": "^arn:aws:ivschat:[a-z0-9-]+:[0-9]+:logging-configuration/[a-zA-Z0-9-]+$", + "type": "string" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "MaximumMessageLength": { + "default": 500, + "maximum": 500, + "minimum": 1, + "type": "integer" + }, + "MaximumMessageRatePerSecond": { + "default": 10, + "maximum": 10, + "minimum": 1, + "type": "integer" + }, + "MessageReviewHandler": { + "$ref": "#/definitions/MessageReviewHandler" + }, + "Name": { + "maxLength": 128, + "minLength": 0, + "pattern": "^[a-zA-Z0-9-_]*$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ivschat.git", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "ivschat:TagResource", + "ivschat:ListTagsForResource", + "ivschat:UntagResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IVSChat::Room" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-organizations-organization.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-organizations-organization.json deleted file mode 100644 index 844033a13a..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-organizations-organization.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "additionalProperties": false, - "handlers": { - "create": { - "permissions": [ - "organizations:CreateOrganization", - "organizations:DescribeOrganization", - "iam:CreateServiceLinkedRole", - "organizations:ListRoots" - ] - }, - "delete": { - "permissions": [ - "organizations:DeleteOrganization", - "organizations:DescribeOrganization" - ] - }, - "list": { - "permissions": [ - "organizations:DescribeOrganization" - ] - }, - "read": { - "permissions": [ - "organizations:DescribeOrganization", - "organizations:ListRoots" - ] - }, - "update": { - "permissions": [ - "organizations:DescribeOrganization" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "pattern": "^arn:aws.*:organizations::\\d{12}:organization\\/o-[a-z0-9]{10,32}", - "type": "string" - }, - "FeatureSet": { - "default": "ALL", - "enum": [ - "ALL", - "CONSOLIDATED_BILLING" - ], - "type": "string" - }, - "Id": { - "pattern": "^o-[a-z0-9]{10,32}$", - "type": "string" - }, - "ManagementAccountArn": { - "pattern": "^arn:aws.*:organizations::\\d{12}:account\\/o-[a-z0-9]{10,32}\\/\\d{12}", - "type": "string" - }, - "ManagementAccountEmail": { - "maxLength": 64, - "minLength": 6, - "pattern": "[^\\s@]+@[^\\s@]+\\.[^\\s@]+", - "type": "string" - }, - "ManagementAccountId": { - "pattern": "^\\d{12}$", - "type": "string" - }, - "RootId": { - "maxLength": 64, - "pattern": "^r-[0-9a-z]{4,32}$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn", - "/properties/ManagementAccountArn", - "/properties/ManagementAccountId", - "/properties/ManagementAccountEmail", - "/properties/RootId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-organizations.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::Organizations::Organization" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-route53-cidrcollection.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-route53-cidrcollection.json new file mode 100644 index 0000000000..4fa6fea8fc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-route53-cidrcollection.json @@ -0,0 +1,101 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "Location": { + "additionalProperties": false, + "properties": { + "CidrList": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "LocationName": { + "maxLength": 16, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "LocationName", + "CidrList" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53:CreateCidrCollection", + "route53:ChangeCidrCollection" + ] + }, + "delete": { + "permissions": [ + "route53:DeleteCidrCollection", + "route53:ChangeCidrCollection", + "route53:ListCidrBlocks" + ] + }, + "list": { + "permissions": [ + "route53:ListCidrCollections", + "route53:ListCidrBlocks" + ] + }, + "read": { + "permissions": [ + "route53:ListCidrCollections", + "route53:ListCidrBlocks" + ] + }, + "update": { + "permissions": [ + "route53:ChangeCidrCollection" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Locations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Location" + }, + "type": "array", + "uniqueItems": true + }, + "Name": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[0-9A-Za-z_\\-]+$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-route53.git", + "tagging": { + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::Route53::CidrCollection" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-app.json new file mode 100644 index 0000000000..d565ffb835 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-app.json @@ -0,0 +1,210 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/Tags", + "/properties/ResourceSpec" + ], + "definitions": { + "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" + }, + "SageMakerImageArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", + "type": "string" + } + }, + "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" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:DescribeApp" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp", + "sagemaker:DescribeApp" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListApps" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeApp", + "sagemaker:DescribeApp" + ] + } + }, + "primaryIdentifier": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName" + ], + "properties": { + "AppArn": { + "maxLength": 256, + "minLength": 1, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app/.*", + "type": "string" + }, + "AppName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "AppType": { + "enum": [ + "JupyterServer", + "KernelGateway", + "RStudioServerPro", + "RSessionGateway", + "Canvas" + ], + "type": "string" + }, + "DomainId": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "ResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileName": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/AppArn" + ], + "required": [ + "AppName", + "AppType", + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::App", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-domain.json new file mode 100644 index 0000000000..5cd4ea45fa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-domain.json @@ -0,0 +1,831 @@ +{ + "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" + } + }, + "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" + } + }, + "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_central_1/aws-sagemaker-modelpackage.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-modelpackage.json new file mode 100644 index 0000000000..04be3e312c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-modelpackage.json @@ -0,0 +1,1135 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/ModelCard", + "/properties/SourceUri" + ], + "createOnlyProperties": [ + "/properties/ModelPackageGroupName", + "/properties/ModelPackageDescription", + "/properties/InferenceSpecification", + "/properties/ValidationSpecification", + "/properties/SourceAlgorithmSpecification", + "/properties/MetadataProperties", + "/properties/ModelMetrics", + "/properties/ClientToken", + "/properties/DriftCheckBaselines", + "/properties/Domain", + "/properties/Task", + "/properties/SamplePayloadUrl", + "/properties/SecurityConfig" + ], + "definitions": { + "AdditionalInferenceSpecificationDefinition": { + "additionalProperties": false, + "properties": { + "Containers": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ModelPackageContainerDefinition" + }, + "maxItems": 15, + "minItems": 1, + "type": "array" + }, + "Description": { + "maxLength": 1024, + "pattern": ".*", + "type": "string" + }, + "Name": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "SupportedContentTypes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ContentType" + }, + "type": "array" + }, + "SupportedRealtimeInferenceInstanceTypes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/InferenceInstanceType" + }, + "type": "array" + }, + "SupportedResponseMIMETypes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResponseMIMEType" + }, + "type": "array" + }, + "SupportedTransformInstanceTypes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/TransformInstanceType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Containers", + "Name" + ], + "type": "object" + }, + "AdditionalInferenceSpecifications": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AdditionalInferenceSpecificationDefinition" + }, + "maxItems": 15, + "minItems": 1, + "type": "array" + }, + "ApprovalDescription": { + "maxLength": 1024, + "pattern": ".*", + "type": "string" + }, + "Bias": { + "additionalProperties": false, + "properties": { + "PostTrainingReport": { + "$ref": "#/definitions/MetricsSource" + }, + "PreTrainingReport": { + "$ref": "#/definitions/MetricsSource" + }, + "Report": { + "$ref": "#/definitions/MetricsSource" + } + }, + "type": "object" + }, + "CertifyForMarketplace": { + "type": "boolean" + }, + "ClientToken": { + "maxLength": 36, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "ContentType": { + "maxLength": 256, + "pattern": ".*", + "type": "string" + }, + "CreationTime": { + "type": "string" + }, + "CustomerMetadataProperties": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + "^([\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]*)${1,128}": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "^([\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]*)${1,256}": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "DataSource": { + "additionalProperties": false, + "properties": { + "S3DataSource": { + "$ref": "#/definitions/S3DataSource" + } + }, + "required": [ + "S3DataSource" + ], + "type": "object" + }, + "Domain": { + "type": "string" + }, + "DriftCheckBaselines": { + "additionalProperties": false, + "properties": { + "Bias": { + "$ref": "#/definitions/DriftCheckBias" + }, + "Explainability": { + "$ref": "#/definitions/DriftCheckExplainability" + }, + "ModelDataQuality": { + "$ref": "#/definitions/DriftCheckModelDataQuality" + }, + "ModelQuality": { + "$ref": "#/definitions/DriftCheckModelQuality" + } + }, + "type": "object" + }, + "DriftCheckBias": { + "additionalProperties": false, + "properties": { + "ConfigFile": { + "$ref": "#/definitions/FileSource" + }, + "PostTrainingConstraints": { + "$ref": "#/definitions/MetricsSource" + }, + "PreTrainingConstraints": { + "$ref": "#/definitions/MetricsSource" + } + }, + "type": "object" + }, + "DriftCheckExplainability": { + "additionalProperties": false, + "properties": { + "ConfigFile": { + "$ref": "#/definitions/FileSource" + }, + "Constraints": { + "$ref": "#/definitions/MetricsSource" + } + }, + "type": "object" + }, + "DriftCheckModelDataQuality": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/MetricsSource" + }, + "Statistics": { + "$ref": "#/definitions/MetricsSource" + } + }, + "type": "object" + }, + "DriftCheckModelQuality": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/MetricsSource" + }, + "Statistics": { + "$ref": "#/definitions/MetricsSource" + } + }, + "type": "object" + }, + "Environment": { + "additionalProperties": false, + "maxProperties": 16, + "patternProperties": { + "[\\S\\s]*": { + "maxLength": 1024, + "type": "string" + }, + "[a-zA-Z_][a-zA-Z0-9_]*": { + "maxLength": 1024, + "type": "string" + } + }, + "type": "object" + }, + "Explainability": { + "additionalProperties": false, + "properties": { + "Report": { + "$ref": "#/definitions/MetricsSource" + } + }, + "type": "object" + }, + "FileSource": { + "additionalProperties": false, + "properties": { + "ContentDigest": { + "maxLength": 72, + "pattern": "^[Ss][Hh][Aa]256:[0-9a-fA-F]{64}$", + "type": "string" + }, + "ContentType": { + "maxLength": 256, + "pattern": ".*", + "type": "string" + }, + "S3Uri": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "required": [ + "S3Uri" + ], + "type": "object" + }, + "InferenceInstanceType": { + "type": "string" + }, + "InferenceSpecification": { + "additionalProperties": false, + "properties": { + "Containers": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ModelPackageContainerDefinition" + }, + "maxItems": 15, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SupportedContentTypes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ContentType" + }, + "type": "array" + }, + "SupportedRealtimeInferenceInstanceTypes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/InferenceInstanceType" + }, + "type": "array" + }, + "SupportedResponseMIMETypes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResponseMIMEType" + }, + "type": "array" + }, + "SupportedTransformInstanceTypes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/TransformInstanceType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Containers", + "SupportedContentTypes", + "SupportedResponseMIMETypes" + ], + "type": "object" + }, + "LastModifiedTime": { + "type": "string" + }, + "MetadataProperties": { + "additionalProperties": false, + "properties": { + "CommitId": { + "maxLength": 1024, + "pattern": ".*", + "type": "string" + }, + "GeneratedBy": { + "maxLength": 1024, + "pattern": ".*", + "type": "string" + }, + "ProjectId": { + "maxLength": 1024, + "pattern": ".*", + "type": "string" + }, + "Repository": { + "maxLength": 1024, + "pattern": ".*", + "type": "string" + } + }, + "type": "object" + }, + "MetricsSource": { + "additionalProperties": false, + "properties": { + "ContentDigest": { + "maxLength": 72, + "pattern": "^[Ss][Hh][Aa]256:[0-9a-fA-F]{64}$", + "type": "string" + }, + "ContentType": { + "maxLength": 256, + "pattern": ".*", + "type": "string" + }, + "S3Uri": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + } + }, + "required": [ + "ContentType", + "S3Uri" + ], + "type": "object" + }, + "ModelAccessConfig": { + "additionalProperties": false, + "properties": { + "AcceptEula": { + "type": "boolean" + } + }, + "required": [ + "AcceptEula" + ], + "type": "object" + }, + "ModelApprovalStatus": { + "enum": [ + "Approved", + "Rejected", + "PendingManualApproval" + ], + "type": "string" + }, + "ModelCard": { + "additionalProperties": false, + "properties": { + "ModelCardContent": { + "maxLength": 100000, + "minLength": 0, + "pattern": ".*", + "type": "string" + }, + "ModelCardStatus": { + "enum": [ + "Draft", + "PendingReview", + "Approved", + "Archived" + ], + "type": "string" + } + }, + "required": [ + "ModelCardContent", + "ModelCardStatus" + ], + "type": "object" + }, + "ModelDataQuality": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/MetricsSource" + }, + "Statistics": { + "$ref": "#/definitions/MetricsSource" + } + }, + "type": "object" + }, + "ModelDataSource": { + "additionalProperties": false, + "properties": { + "S3DataSource": { + "$ref": "#/definitions/S3ModelDataSource" + } + }, + "type": "object" + }, + "ModelMetrics": { + "additionalProperties": false, + "properties": { + "Bias": { + "$ref": "#/definitions/Bias" + }, + "Explainability": { + "$ref": "#/definitions/Explainability" + }, + "ModelDataQuality": { + "$ref": "#/definitions/ModelDataQuality" + }, + "ModelQuality": { + "$ref": "#/definitions/ModelQuality" + } + }, + "type": "object" + }, + "ModelPackageArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-cn|-us-gov)?:sagemaker:[a-z0-9\\-]{9,16}:[0-9]{12}:model-package/[\\S]{1,2048}$", + "type": "string" + }, + "ModelPackageContainerDefinition": { + "additionalProperties": false, + "properties": { + "ContainerHostname": { + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "Environment": { + "$ref": "#/definitions/Environment" + }, + "Framework": { + "type": "string" + }, + "FrameworkVersion": { + "maxLength": 10, + "minLength": 3, + "pattern": "[0-9]\\.[A-Za-z0-9.]+", + "type": "string" + }, + "Image": { + "maxLength": 255, + "minLength": 1, + "pattern": "[\\S]{1,255}", + "type": "string" + }, + "ImageDigest": { + "maxLength": 72, + "pattern": "^[Ss][Hh][Aa]256:[0-9a-fA-F]{64}$", + "type": "string" + }, + "ModelDataSource": { + "$ref": "#/definitions/ModelDataSource" + }, + "ModelDataUrl": { + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "type": "string" + }, + "ModelInput": { + "additionalProperties": false, + "properties": { + "DataInputConfig": { + "maxLength": 1024, + "minLength": 1, + "pattern": "[\\S\\s]+", + "type": "string" + } + }, + "required": [ + "DataInputConfig" + ], + "type": "object" + }, + "NearestModelName": { + "type": "string" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "ModelPackageDescription": { + "maxLength": 1024, + "pattern": "[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}]*", + "type": "string" + }, + "ModelPackageGroupName": { + "maxLength": 170, + "minLength": 1, + "pattern": "(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:[a-z\\-]*\\/)?([a-zA-Z0-9]([a-zA-Z0-9-]){0,62})(?