From bf47be02250366d7120c597b8623703a78effc3c Mon Sep 17 00:00:00 2001 From: Kevin DeJong Date: Fri, 15 Dec 2023 09:29:13 -0800 Subject: [PATCH] Update specs to 23/12/15 --- CHANGELOG.md | 4 + ...5a0d14c62111ff864923fc7b7960dda6.meta.json | 2 +- ...2b6653d7edfe98a64577daae0b481c38.meta.json | 2 +- ...5e4752bbc10d9552de8df8f81348c42b.meta.json | 2 +- ...63a1bf4413531ad420ff60a5a0d7965d.meta.json | 2 +- ...4cfc32461d10e077e7e5de1fc25d8b8f.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 +- ...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 +- ...25c8d66a1f84939600616bab42579541.meta.json | 2 +- ...26b315ef6f38515840537c02de23abe2.meta.json | 2 +- ...cf908a34e6b4c3fb3e97e2b584f651ca.meta.json | 2 +- ...318c41c71c21b0a17d4f68d82c5aee21.meta.json | 2 +- ...6cd7e4ced378cacdb93f76ed227b5c5d.meta.json | 2 +- ...41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json | 2 +- ...e50a1638ffe0a5dba0d8805c190a05f8.meta.json | 2 +- ...3b69878d351cffd417dc9a457df808af.meta.json | 2 +- .../schemas/providers/af_south_1/__init__.py | 41 +- .../af_south_1/aws-appsync-graphqlapi.json | 222 ++ .../aws-codedeploy-deploymentgroup.json | 523 +++ .../aws-ec2-gatewayroutetableassociation.json | 57 - .../providers/af_south_1/aws-ec2-route.json | 129 + .../providers/af_south_1/aws-ec2-subnet.json | 158 - .../af_south_1/aws-ecs-capacityprovider.json | 130 - .../aws-elasticache-user.json} | 97 +- .../providers/af_south_1/aws-emr-cluster.json | 858 +++++ .../aws-emr-studiosessionmapping.json | 110 - .../aws-eventschemas-discoverer.json | 60 - .../af_south_1/aws-imagebuilder-image.json | 198 ++ .../aws-imagebuilder-imagepipeline.json | 213 ++ .../af_south_1/aws-rds-dbcluster.json | 545 +++ .../af_south_1/aws-rds-dbinstance.json | 697 ++++ .../aws-route53resolver-resolverconfig.json | 81 - .../aws-sagemaker-app.json | 5 +- .../aws-sagemaker-domain.json | 218 +- .../aws-sagemaker-userprofile.json | 216 +- .../af_south_1/aws-securityhub-hub.json | 28 + ...servicecatalogappregistry-application.json | 24 +- .../schemas/providers/ap_east_1/__init__.py | 21 +- .../ap_east_1/aws-appsync-graphqlapi.json | 222 ++ .../aws-codedeploy-deploymentgroup.json | 523 +++ .../providers/ap_east_1/aws-emr-cluster.json | 858 +++++ .../aws-eventschemas-discoverer.json | 60 - .../ap_east_1/aws-imagebuilder-image.json | 263 ++ .../aws-imagebuilder-imagepipeline.json | 277 ++ .../ap_east_1/aws-imagebuilder-workflow.json | 145 + .../ap_east_1/aws-rds-dbcluster.json | 545 +++ .../ap_east_1/aws-rds-dbinstance.json | 697 ++++ .../aws-route53resolver-resolverconfig.json | 81 - .../providers/ap_east_1/aws-s3-bucket.json | 1645 --------- .../ap_east_1/aws-securityhub-hub.json | 28 + ...servicecatalogappregistry-application.json | 100 + .../providers/ap_northeast_1/__init__.py | 37 +- .../aws-appsync-graphqlapi.json | 222 ++ .../aws-cleanrooms-collaboration.json | 240 -- .../aws-cleanrooms-membership.json | 232 -- .../aws-codedeploy-deploymentgroup.json | 523 +++ .../ap_northeast_1/aws-connect-instance.json | 238 -- .../aws-connect-instancestorageconfig.json | 262 -- .../aws-connect-integrationassociation.json | 147 - .../ap_northeast_1/aws-connect-user.json | 241 ++ .../aws-dms-replicationconfig.json | 194 - .../aws-ec2-ipamallocation.json | 91 - .../aws-ec2-verifiedaccesstrustprovider.json | 236 -- .../ap_northeast_1/aws-emr-cluster.json | 858 +++++ .../aws-fis-experimenttemplate.json | 399 --- .../aws-imagebuilder-image.json | 263 ++ .../aws-imagebuilder-imagepipeline.json | 277 ++ .../aws-imagebuilder-workflow.json | 145 + .../ap_northeast_1/aws-medialive-channel.json | 3160 ----------------- .../ap_northeast_1/aws-memorydb-acl.json | 119 - .../aws-memorydb-parametergroup.json | 121 - .../aws-memorydb-subnetgroup.json | 117 - .../aws-route53resolver-resolverconfig.json | 81 - .../providers/ap_northeast_2/__init__.py | 24 +- .../aws-appsync-graphqlapi.json | 222 ++ .../aws-autoscaling-autoscalinggroup.json | 15 + .../aws-cleanrooms-membership.json | 232 -- .../aws-codedeploy-deploymentgroup.json | 523 +++ .../aws-ec2-gatewayroutetableassociation.json | 57 - .../ap_northeast_2/aws-ec2-route.json | 129 + .../ap_northeast_2/aws-ec2-subnet.json | 158 - .../ap_northeast_2/aws-emr-cluster.json | 858 +++++ .../aws-eventschemas-discoverer.json | 60 - .../aws-imagebuilder-image.json | 198 ++ .../aws-imagebuilder-imagepipeline.json | 213 ++ .../aws-route53resolver-resolverconfig.json | 81 - .../ap_northeast_2/aws-s3-bucket.json | 1645 --------- .../ap_northeast_2/aws-securityhub-hub.json | 28 + ...servicecatalogappregistry-application.json | 100 + .../providers/ap_northeast_3/__init__.py | 26 +- .../aws-appsync-graphqlapi.json | 222 ++ .../aws-codedeploy-deploymentgroup.json | 523 +++ .../aws-cognito-userpooldomain.json | 84 + .../aws-cognito-userpoolidentityprovider.json | 102 + .../aws-cognito-userpoolresourceserver.json | 102 + ...ito-userpooluicustomizationattachment.json | 62 + .../ap_northeast_3/aws-ecs-service.json | 554 +++ .../ap_northeast_3/aws-emr-cluster.json | 858 +++++ .../aws-emr-studiosessionmapping.json | 110 - .../aws-eventschemas-discoverer.json | 60 - .../ap_northeast_3/aws-fsx-filesystem.json | 440 --- .../aws-imagebuilder-image.json | 198 ++ .../aws-imagebuilder-imagepipeline.json | 213 ++ .../ap_northeast_3/aws-s3-bucket.json | 1645 --------- .../schemas/providers/ap_south_1/__init__.py | 26 +- .../ap_south_1/aws-appsync-graphqlapi.json | 222 ++ .../aws-codedeploy-deploymentconfig.json | 173 - .../aws-codedeploy-deploymentgroup.json | 523 +++ .../ap_south_1/aws-connect-user.json | 241 ++ .../ap_south_1/aws-dms-replicationconfig.json | 194 - .../aws-elasticache-user.json} | 97 +- .../aws-elasticache-usergroup.json} | 83 +- .../providers/ap_south_1/aws-emr-cluster.json | 858 +++++ .../aws-eventschemas-discoverer.json | 60 - .../ap_south_1/aws-guardduty-detector.json | 229 -- .../ap_south_1/aws-imagebuilder-image.json | 198 ++ .../aws-imagebuilder-imagepipeline.json | 213 ++ .../ap_south_1/aws-medialive-channel.json | 3160 ----------------- .../aws-route53resolver-resolverconfig.json | 81 - ...servicecatalogappregistry-application.json | 100 + .../providers/ap_southeast_1/__init__.py | 33 +- .../aws-appsync-graphqlapi.json | 222 ++ .../aws-codedeploy-deploymentgroup.json | 523 +++ .../ap_southeast_1/aws-connect-instance.json | 238 -- .../aws-connect-instancestorageconfig.json | 262 -- .../aws-connect-integrationassociation.json | 147 - .../ap_southeast_1/aws-connect-user.json | 241 ++ .../aws-dms-replicationconfig.json | 194 - .../aws-ec2-verifiedaccesstrustprovider.json | 236 -- .../ap_southeast_1/aws-emr-cluster.json | 858 +++++ .../aws-eventschemas-discoverer.json | 123 - .../aws-fis-experimenttemplate.json | 399 --- .../aws-fis-targetaccountconfiguration.json | 97 - .../aws-imagebuilder-image.json | 263 ++ .../aws-imagebuilder-imagepipeline.json | 277 ++ .../aws-imagebuilder-workflow.json | 145 + .../ap_southeast_1/aws-medialive-channel.json | 3160 ----------------- .../ap_southeast_1/aws-memorydb-cluster.json | 257 ++ .../aws-route53resolver-resolverconfig.json | 90 - .../aws-signer-signingprofile.json | 145 + .../providers/ap_southeast_2/__init__.py | 29 +- .../aws-appsync-graphqlapi.json | 222 ++ .../aws-cleanrooms-collaboration.json | 240 -- .../aws-cleanrooms-membership.json | 232 -- ...aws-cloudfront-monitoringsubscription.json | 67 - .../aws-codedeploy-deploymentgroup.json | 523 +++ .../aws-connect-integrationassociation.json | 147 - .../ap_southeast_2/aws-connect-user.json | 241 ++ .../aws-dms-replicationconfig.json | 194 - .../ap_southeast_2/aws-emr-cluster.json | 858 +++++ .../aws-eventschemas-discoverer.json | 60 - .../aws-imagebuilder-image.json | 198 ++ .../aws-imagebuilder-imagepipeline.json | 213 ++ .../ap_southeast_2/aws-medialive-channel.json | 3160 ----------------- .../aws-route53resolver-resolverconfig.json | 81 - .../providers/ap_southeast_3/__init__.py | 35 +- .../aws-appsync-graphqlapi.json | 222 ++ .../aws-autoscaling-autoscalinggroup.json | 776 ++++ .../aws-codedeploy-deploymentconfig.json | 173 - .../aws-codedeploy-deploymentgroup.json | 523 +++ .../ap_southeast_3/aws-ec2-route.json | 129 + .../aws-ec2-subnetnetworkaclassociation.json | 34 - ...s-elasticloadbalancingv2-loadbalancer.json | 3 + .../ap_southeast_3/aws-emr-cluster.json | 858 +++++ .../aws-emr-studiosessionmapping.json | 110 - .../aws-eventschemas-discoverer.json | 60 - .../aws-imagebuilder-image.json | 198 ++ .../aws-imagebuilder-imagepipeline.json | 213 ++ .../ap_southeast_3/aws-rds-dbcluster.json | 545 +++ .../ap_southeast_3/aws-rds-dbinstance.json | 697 ++++ .../ap_southeast_3/aws-s3-bucket.json | 1645 --------- ...servicecatalogappregistry-application.json | 100 + .../providers/ca_central_1/__init__.py | 24 +- .../aws-appsync-domainnameapiassociation.json | 58 - .../ca_central_1/aws-appsync-graphqlapi.json | 222 ++ .../aws-codedeploy-deploymentgroup.json | 523 +++ .../ca_central_1/aws-connect-user.json | 241 ++ .../aws-dms-replicationconfig.json | 194 - .../ca_central_1/aws-emr-cluster.json | 858 +++++ .../aws-eventschemas-discoverer.json | 60 - .../ca_central_1/aws-imagebuilder-image.json | 263 ++ .../aws-imagebuilder-imagepipeline.json | 277 ++ .../aws-imagebuilder-workflow.json | 145 + .../ca_central_1/aws-lambda-function.json | 619 ---- .../aws-route53resolver-resolverconfig.json | 81 - .../providers/ca_central_1/aws-s3-bucket.json | 1645 --------- .../aws-workspacesthinclient-environment.json | 317 -- .../schemas/providers/cn_north_1/__init__.py | 30 +- .../aws-accessanalyzer-analyzer.json | 191 - .../cn_north_1/aws-appsync-graphqlapi.json | 222 ++ .../cn_north_1/aws-cloud9-environmentec2.json | 104 + .../aws-codedeploy-deploymentgroup.json | 523 +++ .../cn_north_1/aws-ecs-capacityprovider.json | 141 - ...s-clustercapacityproviderassociations.json | 128 + .../providers/cn_north_1/aws-emr-cluster.json | 858 +++++ .../aws-emr-studio.json | 28 +- .../aws-eventschemas-discoverer.json | 123 - .../cn_north_1/aws-eventschemas-registry.json | 95 - .../cn_north_1/aws-gamelift-fleet.json | 443 --- .../cn_north_1/aws-imagebuilder-image.json | 14 +- .../aws-imagebuilder-imagepipeline.json | 8 +- .../cn_north_1/aws-logs-querydefinition.json | 81 + .../cn_north_1/aws-rds-dbcluster.json | 545 +++ .../cn_north_1/aws-rds-dbinstance.json | 697 ++++ .../aws-route53resolver-resolverconfig.json | 84 - .../providers/cn_north_1/aws-s3-bucket.json | 1645 --------- .../cn_north_1/aws-sagemaker-app.json | 216 ++ .../cn_north_1/aws-sagemaker-domain.json | 575 +++ .../cn_north_1/aws-sagemaker-userprofile.json | 368 ++ .../cn_north_1/aws-ssm-association.json | 263 ++ .../providers/cn_northwest_1/__init__.py | 24 +- .../aws-accessanalyzer-analyzer.json | 191 - .../aws-appsync-graphqlapi.json | 222 ++ .../aws-cloud9-environmentec2.json | 104 + .../aws-codedeploy-deploymentgroup.json | 523 +++ .../cn_northwest_1/aws-ec2-route.json | 129 + .../cn_northwest_1/aws-emr-cluster.json | 858 +++++ .../cn_northwest_1/aws-emr-studio.json | 210 ++ .../aws-imagebuilder-image.json | 14 +- .../aws-imagebuilder-imagepipeline.json | 8 +- .../cn_northwest_1/aws-lambda-function.json | 577 --- .../cn_northwest_1/aws-rds-dbcluster.json | 545 +++ .../cn_northwest_1/aws-rds-dbinstance.json | 697 ++++ .../cn_northwest_1/aws-s3-bucket.json | 1645 --------- .../cn_northwest_1/aws-securityhub-hub.json | 28 + .../cn_northwest_1/aws-sns-topic.json | 163 - .../cn_northwest_1/aws-ssm-association.json | 263 ++ .../providers/eu_central_1/__init__.py | 53 +- .../aws-accessanalyzer-analyzer.json | 215 -- .../eu_central_1/aws-appsync-graphqlapi.json | 222 ++ .../eu_central_1/aws-batch-jobdefinition.json | 858 +++++ .../aws-cloudtrail-eventdatastore.json | 336 -- .../aws-codedeploy-deploymentgroup.json | 523 +++ .../eu_central_1/aws-connect-instance.json | 238 -- .../aws-connect-instancestorageconfig.json | 3 +- .../aws-connect-integrationassociation.json | 147 - .../eu_central_1/aws-connect-user.json | 241 ++ .../aws-dms-replicationconfig.json | 194 - .../eu_central_1/aws-ec2-ipamallocation.json | 91 - .../aws-ec2-subnet.json | 3 +- .../aws-ecs-capacityprovider.json | 141 - .../eu_central_1/aws-emr-cluster.json | 858 +++++ .../aws-emr-studiosessionmapping.json | 113 - .../aws-eventschemas-discoverer.json | 123 - .../aws-eventschemas-registry.json | 95 - .../eu_central_1/aws-eventschemas-schema.json | 141 - .../aws-fis-experimenttemplate.json | 399 --- .../aws-fis-targetaccountconfiguration.json | 97 - .../eu_central_1/aws-imagebuilder-image.json | 263 ++ .../aws-imagebuilder-imagepipeline.json | 277 ++ .../aws-imagebuilder-workflow.json | 145 + .../aws-iot-certificateprovider.json | 129 + .../eu_central_1/aws-lambda-function.json | 619 ---- .../aws-logs-querydefinition.json | 81 + .../eu_central_1/aws-medialive-channel.json | 3160 ----------------- .../aws-memorydb-parametergroup.json | 121 - .../eu_central_1/aws-memorydb-user.json | 142 - .../aws-route53resolver-resolverconfig.json | 81 - .../aws-s3-bucket.json | 51 + .../eu_central_1/aws-sagemaker-app.json | 216 ++ .../eu_central_1/aws-sagemaker-domain.json | 575 +++ .../aws-sagemaker-userprofile.json | 368 ++ .../aws-workspacesthinclient-environment.json | 317 -- .../schemas/providers/eu_north_1/__init__.py | 25 +- .../eu_north_1/aws-appsync-graphqlapi.json | 222 ++ .../aws-codedeploy-deploymentconfig.json | 173 - .../aws-codedeploy-deploymentgroup.json | 523 +++ .../providers/eu_north_1/aws-emr-cluster.json | 858 +++++ .../aws-eventschemas-discoverer.json | 60 - .../eu_north_1/aws-imagebuilder-image.json | 198 ++ .../aws-imagebuilder-imagepipeline.json | 213 ++ .../providers/eu_north_1/aws-s3-bucket.json | 1645 --------- .../aws-s3express-directorybucket.json | 82 + .../eu_north_1/aws-securityhub-hub.json | 28 + ...servicecatalogappregistry-application.json | 100 + .../schemas/providers/eu_south_1/__init__.py | 27 +- .../eu_south_1/aws-appsync-graphqlapi.json | 222 ++ .../aws-codedeploy-deploymentgroup.json | 523 +++ .../aws-ec2-gatewayroutetableassociation.json | 57 - .../providers/eu_south_1/aws-ec2-route.json | 129 + .../providers/eu_south_1/aws-ec2-subnet.json | 158 - .../providers/eu_south_1/aws-emr-cluster.json | 858 +++++ .../aws-eventschemas-discoverer.json | 60 - .../eu_south_1/aws-imagebuilder-image.json | 198 ++ .../aws-imagebuilder-imagepipeline.json | 213 ++ .../eu_south_1/aws-logs-delivery.json | 141 - .../aws-logs-deliverydestination.json | 165 - .../eu_south_1/aws-logs-deliverysource.json | 150 - .../eu_south_1/aws-rds-dbcluster.json | 545 +++ .../eu_south_1/aws-rds-dbinstance.json | 697 ++++ .../aws-route53resolver-resolverconfig.json | 81 - .../providers/eu_south_1/aws-s3-bucket.json | 1640 --------- .../eu_south_1/aws-securityhub-hub.json | 28 + ...servicecatalogappregistry-application.json | 100 + .../schemas/providers/eu_west_1/__init__.py | 32 +- .../eu_west_1/aws-appsync-graphqlapi.json | 222 ++ .../aws-codedeploy-deploymentgroup.json | 523 +++ .../eu_west_1/aws-dms-replicationconfig.json | 194 - .../providers/eu_west_1/aws-emr-cluster.json | 858 +++++ .../aws-eventschemas-discoverer.json | 60 - .../eu_west_1/aws-fis-experimenttemplate.json | 399 --- .../aws-fis-targetaccountconfiguration.json | 97 - .../aws-fsx-datarepositoryassociation.json | 212 -- .../eu_west_1/aws-imagebuilder-image.json | 263 ++ .../aws-imagebuilder-imagepipeline.json | 277 ++ .../eu_west_1/aws-imagebuilder-workflow.json | 145 + .../eu_west_1/aws-lambda-function.json | 619 ---- .../eu_west_1/aws-logs-delivery.json | 141 - .../aws-logs-deliverydestination.json | 165 - .../eu_west_1/aws-logs-deliverysource.json | 150 - .../eu_west_1/aws-medialive-channel.json | 3160 ----------------- .../aws-route53resolver-resolverconfig.json | 81 - .../aws-workspacesthinclient-environment.json | 317 -- .../schemas/providers/eu_west_2/__init__.py | 20 +- .../eu_west_2/aws-appsync-graphqlapi.json | 222 ++ .../eu_west_2/aws-cleanrooms-membership.json | 232 -- .../aws-codedeploy-deploymentgroup.json | 523 +++ .../providers/eu_west_2/aws-connect-user.json | 241 ++ .../providers/eu_west_2/aws-emr-cluster.json | 858 +++++ .../aws-eventschemas-discoverer.json | 60 - .../eu_west_2/aws-imagebuilder-image.json | 198 ++ .../aws-imagebuilder-imagepipeline.json | 213 ++ .../aws-route53resolver-resolverconfig.json | 81 - .../providers/eu_west_2/aws-s3-bucket.json | 1645 --------- ...servicecatalogappregistry-application.json | 100 + .../aws-workspacesthinclient-environment.json | 317 -- .../schemas/providers/eu_west_3/__init__.py | 22 +- .../eu_west_3/aws-appsync-graphqlapi.json | 222 ++ .../aws-codedeploy-deploymentconfig.json | 173 - .../aws-codedeploy-deploymentgroup.json | 523 +++ .../providers/eu_west_3/aws-emr-cluster.json | 858 +++++ .../aws-eventschemas-discoverer.json | 60 - .../eu_west_3/aws-imagebuilder-image.json | 198 ++ .../aws-imagebuilder-imagepipeline.json | 213 ++ .../eu_west_3/aws-logs-delivery.json | 141 - .../aws-logs-deliverydestination.json | 165 - .../eu_west_3/aws-logs-deliverysource.json | 150 - .../aws-route53resolver-resolverconfig.json | 81 - .../providers/eu_west_3/aws-s3-bucket.json | 1645 --------- .../eu_west_3/aws-securityhub-hub.json | 28 + ...servicecatalogappregistry-application.json | 100 + .../schemas/providers/me_south_1/__init__.py | 33 +- .../me_south_1/aws-appsync-graphqlapi.json | 222 ++ .../aws-codedeploy-deploymentconfig.json | 173 - .../aws-codedeploy-deploymentgroup.json | 523 +++ .../aws-cognito-userpooldomain.json | 84 + .../aws-cognito-userpoolresourceserver.json | 102 + ...ito-userpooluicustomizationattachment.json | 43 +- .../aws-config-conformancepack.json | 150 - .../aws-ec2-gatewayroutetableassociation.json | 57 - .../providers/me_south_1/aws-ec2-route.json | 129 + .../providers/me_south_1/aws-emr-cluster.json | 858 +++++ .../me_south_1/aws-imagebuilder-image.json | 198 ++ .../aws-imagebuilder-imagepipeline.json | 213 ++ .../aws-networkfirewall-firewall.json | 190 - .../me_south_1/aws-rds-dbcluster.json | 545 +++ .../me_south_1/aws-rds-dbinstance.json | 697 ++++ .../aws-route53resolver-resolverconfig.json | 81 - .../providers/me_south_1/aws-s3-bucket.json | 1640 --------- .../me_south_1/aws-securityhub-hub.json | 28 + ...servicecatalogappregistry-application.json | 100 + .../schemas/providers/sa_east_1/__init__.py | 23 +- .../aws-appsync-domainnameapiassociation.json | 58 - .../sa_east_1/aws-appsync-graphqlapi.json | 222 ++ .../aws-codedeploy-deploymentconfig.json | 173 - .../aws-codedeploy-deploymentgroup.json | 523 +++ .../sa_east_1/aws-dms-replicationconfig.json | 194 - .../providers/sa_east_1/aws-emr-cluster.json | 858 +++++ .../aws-eventschemas-discoverer.json | 60 - .../sa_east_1/aws-imagebuilder-image.json | 198 ++ .../aws-imagebuilder-imagepipeline.json | 213 ++ .../aws-route53resolver-resolverconfig.json | 81 - .../sa_east_1/aws-sagemaker-app.json | 216 ++ .../sa_east_1/aws-sagemaker-domain.json | 575 +++ .../sa_east_1/aws-sagemaker-userprofile.json | 368 ++ .../schemas/providers/us_east_1/__init__.py | 12 + .../aws-accessanalyzer-analyzer.json | 2 +- .../aws-autoscaling-autoscalinggroup.json | 34 +- .../us_east_1/aws-b2bi-capability.json | 277 ++ .../us_east_1/aws-b2bi-partnership.json | 153 + .../providers/us_east_1/aws-b2bi-profile.json | 161 + .../us_east_1/aws-b2bi-transformer.json | 225 ++ .../us_east_1/aws-cloud9-environmentec2.json | 1 + .../aws-cloudfront-keyvaluestore.json | 99 + .../aws-cloudtrail-eventdatastore.json | 31 +- .../aws-codedeploy-deploymentconfig.json | 39 + .../us_east_1/aws-codepipeline-pipeline.json | 98 + .../aws-config-configurationrecorder.json | 45 + .../us_east_1/aws-connect-instance.json | 47 +- .../aws-connect-instancestorageconfig.json | 3 +- .../aws-connect-integrationassociation.json | 36 +- .../us_east_1/aws-dms-dataprovider.json | 293 ++ .../providers/us_east_1/aws-dms-endpoint.json | 12 + .../us_east_1/aws-dms-instanceprofile.json | 170 + .../us_east_1/aws-dms-migrationproject.json | 211 ++ .../us_east_1/aws-dms-replicationconfig.json | 24 +- .../us_east_1/aws-ec2-ipamallocation.json | 2 +- .../providers/us_east_1/aws-ec2-route.json | 4 + .../aws-ec2-securitygroupegress.json | 47 + .../aws-ec2-snapshotblockpublicaccess.json | 62 + .../aws-ec2-verifiedaccesstrustprovider.json | 4 + .../us_east_1/aws-ecs-capacityprovider.json | 10 + .../providers/us_east_1/aws-ecs-service.json | 3 +- .../aws-elasticache-serverlesscache.json | 6 +- ...ws-elasticloadbalancingv2-targetgroup.json | 3 + .../providers/us_east_1/aws-emr-studio.json | 28 +- .../aws-emr-studiosessionmapping.json | 8 +- .../aws-eventschemas-discoverer.json | 0 .../us_east_1/aws-eventschemas-registry.json | 53 +- .../us_east_1/aws-eventschemas-schema.json | 78 +- .../us_east_1/aws-fis-experimenttemplate.json | 28 +- .../aws-fis-targetaccountconfiguration.json | 0 .../aws-fsx-datarepositoryassociation.json | 1 + .../us_east_1/aws-gamelift-fleet.json | 9 + .../aws-identitystore-groupmembership.json | 4 +- .../aws-kinesisfirehose-deliverystream.json | 1 + .../aws-lambda-eventinvokeconfig.json | 76 +- .../us_east_1/aws-lambda-function.json | 7 +- .../us_east_1/aws-medialive-channel.json | 34 + .../providers/us_east_1/aws-memorydb-acl.json | 1 + .../aws-memorydb-parametergroup.json | 1 + .../us_east_1/aws-memorydb-subnetgroup.json | 1 + .../us_east_1/aws-memorydb-user.json | 1 + .../aws-opensearchservice-domain.json | 7 + .../us_east_1/aws-osis-pipeline.json | 58 +- .../us_east_1/aws-rds-dbcluster.json | 1 + .../us_east_1/aws-rds-dbinstance.json | 1 + .../aws-resourceexplorer2-index.json | 3 +- .../aws-route53resolver-resolverconfig.json | 19 +- .../aws-s3express-directorybucket.json | 6 +- .../us_east_1/aws-sagemaker-app.json | 5 +- .../us_east_1/aws-sagemaker-domain.json | 216 +- .../us_east_1/aws-sagemaker-featuregroup.json | 19 + .../us_east_1/aws-sagemaker-userprofile.json | 206 +- .../us_east_1/aws-securityhub-hub.json | 85 +- ...servicecatalogappregistry-application.json | 24 +- .../us_east_1/aws-signer-signingprofile.json | 2 +- .../us_east_1/aws-sns-subscription.json | 3 + .../providers/us_east_1/aws-sns-topic.json | 17 - .../us_east_1/aws-ssm-association.json | 12 +- .../aws-workspacesthinclient-environment.json | 0 .../schemas/providers/us_east_2/__init__.py | 38 +- .../us_east_2/aws-appsync-graphqlapi.json | 222 ++ .../us_east_2/aws-aps-workspace.json | 166 + .../aws-codedeploy-deploymentconfig.json | 173 - .../aws-codedeploy-deploymentgroup.json | 523 +++ .../providers/us_east_2/aws-emr-cluster.json | 858 +++++ .../aws-eventschemas-discoverer.json | 60 - .../aws-fsx-datarepositoryassociation.json | 212 -- .../us_east_2/aws-imagebuilder-image.json | 263 ++ .../aws-imagebuilder-imagepipeline.json | 277 ++ .../us_east_2/aws-imagebuilder-workflow.json | 145 + .../aws-route53resolver-resolverconfig.json | 81 - .../providers/us_east_2/aws-s3-bucket.json | 1645 --------- ...servicecatalogappregistry-application.json | 100 + .../providers/us_gov_east_1/__init__.py | 31 +- .../aws-accessanalyzer-analyzer.json | 191 - .../aws-codedeploy-deploymentgroup.json | 523 +++ .../us_gov_east_1/aws-ec2-dhcpoptions.json | 126 - .../aws-ec2-securitygroupegress.json | 57 + .../aws-ec2-subnetnetworkaclassociation.json | 34 - .../us_gov_east_1/aws-emr-cluster.json | 858 +++++ .../aws-emr-studiosessionmapping.json | 113 - .../us_gov_east_1/aws-glue-classifier.json | 117 - .../us_gov_east_1/aws-glue-crawler.json | 232 -- .../us_gov_east_1/aws-glue-database.json | 96 - .../providers/us_gov_east_1/aws-glue-job.json | 133 - .../us_gov_east_1/aws-glue-table.json | 285 -- .../us_gov_east_1/aws-imagebuilder-image.json | 198 ++ .../aws-imagebuilder-imagepipeline.json | 213 ++ .../aws-lambda-eventinvokeconfig.json | 77 + .../aws-lambda-function.json | 7 +- .../aws-opensearchservice-domain.json | 517 +++ .../us_gov_east_1/aws-rds-dbcluster.json | 545 +++ .../us_gov_east_1/aws-rds-dbinstance.json | 697 ++++ .../aws-route53resolver-resolverconfig.json | 84 - .../us_gov_east_1/aws-sagemaker-app.json | 216 ++ .../us_gov_east_1/aws-sagemaker-domain.json | 575 +++ .../aws-secretsmanager-secret.json | 117 - .../us_gov_east_1/aws-securityhub-hub.json | 28 + ...servicecatalogappregistry-application.json | 100 + .../providers/us_gov_west_1/__init__.py | 33 +- .../aws-accessanalyzer-analyzer.json | 191 - .../aws-codedeploy-deploymentgroup.json | 523 +++ .../us_gov_west_1/aws-connect-user.json | 241 ++ .../us_gov_west_1/aws-ec2-dhcpoptions.json | 126 - .../us_gov_west_1/aws-ec2-ec2fleet.json | 710 ++++ .../aws-ec2-securitygroupegress.json | 57 + .../aws-ec2-subnetnetworkaclassociation.json | 34 - .../us_gov_west_1/aws-emr-cluster.json | 858 +++++ .../aws-emr-studiosessionmapping.json | 113 - .../us_gov_west_1/aws-glue-classifier.json | 117 - .../us_gov_west_1/aws-glue-crawler.json | 232 -- .../us_gov_west_1/aws-glue-database.json | 96 - .../providers/us_gov_west_1/aws-glue-job.json | 133 - .../us_gov_west_1/aws-glue-table.json | 285 -- .../us_gov_west_1/aws-imagebuilder-image.json | 198 ++ .../aws-imagebuilder-imagepipeline.json | 277 ++ .../aws-imagebuilder-workflow.json | 145 + .../aws-lambda-eventinvokeconfig.json | 77 + .../aws-lambda-function.json | 7 +- .../aws-opensearchservice-domain.json | 517 +++ .../us_gov_west_1/aws-rds-dbcluster.json | 545 +++ .../us_gov_west_1/aws-rds-dbinstance.json | 697 ++++ .../us_gov_west_1/aws-sagemaker-app.json | 216 ++ .../us_gov_west_1/aws-sagemaker-domain.json | 575 +++ .../aws-secretsmanager-secret.json | 117 - .../us_gov_west_1/aws-securityhub-hub.json | 28 + ...servicecatalogappregistry-application.json | 100 + .../schemas/providers/us_west_1/__init__.py | 19 +- .../providers/us_west_1/aws-ec2-route.json | 129 + .../aws-emr-studiosessionmapping.json | 113 - .../aws-eventschemas-discoverer.json | 60 - .../aws-resourceexplorer2-index.json | 101 + .../aws-route53resolver-resolverconfig.json | 81 - .../providers/us_west_1/aws-s3-bucket.json | 1645 --------- .../us_west_1/aws-sagemaker-app.json | 216 ++ .../us_west_1/aws-sagemaker-domain.json | 575 +++ .../us_west_1/aws-sagemaker-userprofile.json | 368 ++ .../us_west_1/aws-securityhub-hub.json | 28 + ...servicecatalogappregistry-application.json | 100 + .../schemas/providers/us_west_2/__init__.py | 49 +- .../us_west_2/aws-appsync-graphqlapi.json | 222 ++ .../aws-cleanrooms-collaboration.json | 240 -- .../us_west_2/aws-cleanrooms-membership.json | 232 -- .../aws-codedeploy-deploymentgroup.json | 523 +++ .../providers/us_west_2/aws-connect-rule.json | 509 +++ .../providers/us_west_2/aws-connect-user.json | 241 ++ .../us_west_2/aws-devicefarm-project.json | 22 +- .../aws-devicefarm-vpceconfiguration.json | 9 +- .../us_west_2/aws-dms-replicationconfig.json | 194 - .../providers/us_west_2/aws-ec2-instance.json | 665 ++++ ...s-clustercapacityproviderassociations.json | 128 + .../providers/us_west_2/aws-emr-cluster.json | 858 +++++ .../aws-eventschemas-discoverer.json | 123 - .../us_west_2/aws-fis-experimenttemplate.json | 399 --- .../aws-fis-targetaccountconfiguration.json | 97 - .../aws-fsx-datarepositoryassociation.json | 212 -- .../us_west_2/aws-imagebuilder-image.json | 263 ++ .../aws-imagebuilder-imagepipeline.json | 277 ++ .../us_west_2/aws-imagebuilder-workflow.json | 145 + .../us_west_2/aws-logs-delivery.json | 141 - .../aws-logs-deliverydestination.json | 165 - .../us_west_2/aws-logs-deliverysource.json | 150 - .../us_west_2/aws-logs-querydefinition.json | 81 + .../us_west_2/aws-medialive-channel.json | 3160 ----------------- .../providers/us_west_2/aws-memorydb-acl.json | 119 - .../aws-memorydb-parametergroup.json | 121 - .../aws-memorydb-subnetgroup.json | 1 - .../us_west_2/aws-msk-batchscramsecret.json | 89 - .../aws-route53resolver-resolverconfig.json | 81 - .../aws-workspacesthinclient-environment.json | 317 -- 563 files changed, 83715 insertions(+), 73990 deletions(-) create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-appsync-graphqlapi.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-codedeploy-deploymentgroup.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-gatewayroutetableassociation.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-route.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-subnet.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-ecs-capacityprovider.json rename src/cfnlint/data/schemas/providers/{us_west_2/aws-memorydb-user.json => af_south_1/aws-elasticache-user.json} (59%) create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-emr-studiosessionmapping.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-eventschemas-discoverer.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-imagebuilder-imagepipeline.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbcluster.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbinstance.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-route53resolver-resolverconfig.json rename src/cfnlint/data/schemas/providers/{us_east_2 => af_south_1}/aws-sagemaker-app.json (97%) rename src/cfnlint/data/schemas/providers/{us_east_2 => af_south_1}/aws-sagemaker-domain.json (73%) rename src/cfnlint/data/schemas/providers/{us_east_2 => af_south_1}/aws-sagemaker-userprofile.json (64%) create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-securityhub-hub.json rename src/cfnlint/data/schemas/providers/{eu_central_1 => af_south_1}/aws-servicecatalogappregistry-application.json (78%) create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-appsync-graphqlapi.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-codedeploy-deploymentgroup.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-eventschemas-discoverer.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-imagebuilder-imagepipeline.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-imagebuilder-workflow.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-rds-dbcluster.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-rds-dbinstance.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-route53resolver-resolverconfig.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-s3-bucket.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-securityhub-hub.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-servicecatalogappregistry-application.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-appsync-graphqlapi.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-collaboration.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-membership.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-codedeploy-deploymentgroup.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-instance.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-instancestorageconfig.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-integrationassociation.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-user.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-dms-replicationconfig.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ec2-ipamallocation.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ec2-verifiedaccesstrustprovider.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-fis-experimenttemplate.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-imagepipeline.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-medialive-channel.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-memorydb-acl.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-memorydb-parametergroup.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-memorydb-subnetgroup.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-route53resolver-resolverconfig.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-appsync-graphqlapi.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-membership.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-codedeploy-deploymentgroup.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-gatewayroutetableassociation.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-route.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-subnet.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-eventschemas-discoverer.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-imagebuilder-imagepipeline.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-route53resolver-resolverconfig.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-s3-bucket.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-securityhub-hub.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-servicecatalogappregistry-application.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-appsync-graphqlapi.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-codedeploy-deploymentgroup.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-cognito-userpooldomain.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-cognito-userpoolidentityprovider.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-cognito-userpoolresourceserver.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-cognito-userpooluicustomizationattachment.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ecs-service.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-emr-studiosessionmapping.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-eventschemas-discoverer.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-fsx-filesystem.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-imagebuilder-imagepipeline.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-s3-bucket.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-appsync-graphqlapi.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-codedeploy-deploymentconfig.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-codedeploy-deploymentgroup.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-connect-user.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-dms-replicationconfig.json rename src/cfnlint/data/schemas/providers/{ap_northeast_1/aws-memorydb-user.json => ap_south_1/aws-elasticache-user.json} (59%) rename src/cfnlint/data/schemas/providers/{eu_central_1/aws-memorydb-acl.json => ap_south_1/aws-elasticache-usergroup.json} (56%) create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-eventschemas-discoverer.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-guardduty-detector.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-imagebuilder-imagepipeline.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-medialive-channel.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-route53resolver-resolverconfig.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-servicecatalogappregistry-application.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-appsync-graphqlapi.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-codedeploy-deploymentgroup.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-instance.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-instancestorageconfig.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-integrationassociation.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-user.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-dms-replicationconfig.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ec2-verifiedaccesstrustprovider.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-eventschemas-discoverer.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-fis-experimenttemplate.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-fis-targetaccountconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-imagepipeline.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-medialive-channel.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-memorydb-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-route53resolver-resolverconfig.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-signer-signingprofile.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-appsync-graphqlapi.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-collaboration.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-membership.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cloudfront-monitoringsubscription.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-codedeploy-deploymentgroup.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-connect-integrationassociation.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-connect-user.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-dms-replicationconfig.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-eventschemas-discoverer.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-imagebuilder-imagepipeline.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-medialive-channel.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-route53resolver-resolverconfig.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-appsync-graphqlapi.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-autoscaling-autoscalinggroup.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-codedeploy-deploymentconfig.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-codedeploy-deploymentgroup.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-route.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-subnetnetworkaclassociation.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-emr-studiosessionmapping.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-eventschemas-discoverer.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-imagebuilder-imagepipeline.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbcluster.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbinstance.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-s3-bucket.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-servicecatalogappregistry-application.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-appsync-domainnameapiassociation.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-appsync-graphqlapi.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-codedeploy-deploymentgroup.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-connect-user.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-dms-replicationconfig.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-eventschemas-discoverer.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-imagepipeline.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-lambda-function.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-route53resolver-resolverconfig.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-s3-bucket.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-workspacesthinclient-environment.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-accessanalyzer-analyzer.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-appsync-graphqlapi.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-cloud9-environmentec2.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-codedeploy-deploymentgroup.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-ecs-capacityprovider.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-ecs-clustercapacityproviderassociations.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-emr-cluster.json rename src/cfnlint/data/schemas/providers/{eu_central_1 => cn_north_1}/aws-emr-studio.json (86%) delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-eventschemas-discoverer.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-eventschemas-registry.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-gamelift-fleet.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-logs-querydefinition.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-rds-dbcluster.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-rds-dbinstance.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-route53resolver-resolverconfig.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-s3-bucket.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-domain.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-ssm-association.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-accessanalyzer-analyzer.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-appsync-graphqlapi.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-cloud9-environmentec2.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-codedeploy-deploymentgroup.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-route.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-emr-cluster.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-emr-studio.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lambda-function.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-dbcluster.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-dbinstance.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-s3-bucket.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-securityhub-hub.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-sns-topic.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ssm-association.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-accessanalyzer-analyzer.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-appsync-graphqlapi.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-batch-jobdefinition.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-cloudtrail-eventdatastore.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-codedeploy-deploymentgroup.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-connect-instance.json rename src/cfnlint/data/schemas/providers/{ap_southeast_2 => eu_central_1}/aws-connect-instancestorageconfig.json (99%) delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-connect-integrationassociation.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-connect-user.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-dms-replicationconfig.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-ipamallocation.json rename src/cfnlint/data/schemas/providers/{me_south_1 => eu_central_1}/aws-ec2-subnet.json (98%) delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-ecs-capacityprovider.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-emr-studiosessionmapping.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-eventschemas-discoverer.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-eventschemas-registry.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-eventschemas-schema.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-fis-experimenttemplate.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-fis-targetaccountconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-imagepipeline.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-workflow.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-iot-certificateprovider.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-lambda-function.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-logs-querydefinition.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-medialive-channel.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-memorydb-parametergroup.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-memorydb-user.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-route53resolver-resolverconfig.json rename src/cfnlint/data/schemas/providers/{af_south_1 => eu_central_1}/aws-s3-bucket.json (97%) 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-userprofile.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-workspacesthinclient-environment.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-appsync-graphqlapi.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-codedeploy-deploymentconfig.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-codedeploy-deploymentgroup.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-eventschemas-discoverer.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-imagebuilder-imagepipeline.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-s3-bucket.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-s3express-directorybucket.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-securityhub-hub.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-servicecatalogappregistry-application.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-appsync-graphqlapi.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-codedeploy-deploymentgroup.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-gatewayroutetableassociation.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-route.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-subnet.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-eventschemas-discoverer.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-imagebuilder-imagepipeline.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-logs-delivery.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-logs-deliverydestination.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-logs-deliverysource.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-rds-dbcluster.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-rds-dbinstance.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-route53resolver-resolverconfig.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-s3-bucket.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-securityhub-hub.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-servicecatalogappregistry-application.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-appsync-graphqlapi.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-codedeploy-deploymentgroup.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-dms-replicationconfig.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-eventschemas-discoverer.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-fis-experimenttemplate.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-fis-targetaccountconfiguration.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-fsx-datarepositoryassociation.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-imagepipeline.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-lambda-function.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-logs-delivery.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-logs-deliverydestination.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-logs-deliverysource.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-medialive-channel.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-route53resolver-resolverconfig.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-workspacesthinclient-environment.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-appsync-graphqlapi.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-cleanrooms-membership.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-codedeploy-deploymentgroup.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-connect-user.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-eventschemas-discoverer.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-imagebuilder-imagepipeline.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-route53resolver-resolverconfig.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-s3-bucket.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-servicecatalogappregistry-application.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-workspacesthinclient-environment.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-appsync-graphqlapi.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-codedeploy-deploymentconfig.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-codedeploy-deploymentgroup.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-eventschemas-discoverer.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-imagebuilder-imagepipeline.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-logs-delivery.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-logs-deliverydestination.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-logs-deliverysource.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-route53resolver-resolverconfig.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-s3-bucket.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-securityhub-hub.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-servicecatalogappregistry-application.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-appsync-graphqlapi.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-codedeploy-deploymentconfig.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-codedeploy-deploymentgroup.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-cognito-userpooldomain.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-cognito-userpoolresourceserver.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-config-conformancepack.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-gatewayroutetableassociation.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-route.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-emr-cluster.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-imagebuilder-imagepipeline.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-networkfirewall-firewall.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-rds-dbcluster.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-rds-dbinstance.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-route53resolver-resolverconfig.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-s3-bucket.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-securityhub-hub.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-servicecatalogappregistry-application.json delete mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-appsync-domainnameapiassociation.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-appsync-graphqlapi.json delete mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-codedeploy-deploymentconfig.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-codedeploy-deploymentgroup.json delete mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-dms-replicationconfig.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-eventschemas-discoverer.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-imagebuilder-imagepipeline.json delete mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-route53resolver-resolverconfig.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-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-capability.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-partnership.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-profile.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-transformer.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_1/aws-cloudfront-keyvaluestore.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_1/aws-dms-dataprovider.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_1/aws-dms-instanceprofile.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_1/aws-dms-migrationproject.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-snapshotblockpublicaccess.json rename src/cfnlint/data/schemas/providers/{ap_northeast_1 => us_east_1}/aws-eventschemas-discoverer.json (100%) rename src/cfnlint/data/schemas/providers/{ap_northeast_1 => us_east_1}/aws-fis-targetaccountconfiguration.json (100%) rename src/cfnlint/data/schemas/providers/{ap_south_1 => us_east_1}/aws-workspacesthinclient-environment.json (100%) create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-appsync-graphqlapi.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-aps-workspace.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-codedeploy-deploymentconfig.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-codedeploy-deploymentgroup.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-eventschemas-discoverer.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-fsx-datarepositoryassociation.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-imagepipeline.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-route53resolver-resolverconfig.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-s3-bucket.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-servicecatalogappregistry-application.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-accessanalyzer-analyzer.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-codedeploy-deploymentgroup.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-dhcpoptions.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-securitygroupegress.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-subnetnetworkaclassociation.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-emr-studiosessionmapping.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-classifier.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-crawler.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-job.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-table.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-imagebuilder-imagepipeline.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-lambda-eventinvokeconfig.json rename src/cfnlint/data/schemas/providers/{eu_south_1 => us_gov_east_1}/aws-lambda-function.json (99%) create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-opensearchservice-domain.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 delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-route53resolver-resolverconfig.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 delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-secretsmanager-secret.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-securityhub-hub.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-servicecatalogappregistry-application.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-accessanalyzer-analyzer.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-codedeploy-deploymentgroup.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-connect-user.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-dhcpoptions.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-ec2fleet.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-securitygroupegress.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-subnetnetworkaclassociation.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-emr-studiosessionmapping.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-classifier.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-crawler.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-job.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-table.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-imagebuilder-imagepipeline.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-imagebuilder-workflow.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-lambda-eventinvokeconfig.json rename src/cfnlint/data/schemas/providers/{ap_northeast_1 => us_gov_west_1}/aws-lambda-function.json (99%) create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-opensearchservice-domain.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 delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-secretsmanager-secret.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-securityhub-hub.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-servicecatalogappregistry-application.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-route.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-emr-studiosessionmapping.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-eventschemas-discoverer.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-resourceexplorer2-index.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-route53resolver-resolverconfig.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-s3-bucket.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-userprofile.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-securityhub-hub.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-servicecatalogappregistry-application.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-appsync-graphqlapi.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-cleanrooms-collaboration.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-cleanrooms-membership.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-codedeploy-deploymentgroup.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-connect-rule.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-connect-user.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-dms-replicationconfig.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-ec2-instance.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-ecs-clustercapacityproviderassociations.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-emr-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-eventschemas-discoverer.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-fis-experimenttemplate.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-fis-targetaccountconfiguration.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-fsx-datarepositoryassociation.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-imagebuilder-image.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-imagebuilder-imagepipeline.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-imagebuilder-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-logs-delivery.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-logs-deliverydestination.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-logs-deliverysource.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-logs-querydefinition.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-medialive-channel.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-memorydb-acl.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-memorydb-parametergroup.json rename src/cfnlint/data/schemas/providers/{eu_central_1 => us_west_2}/aws-memorydb-subnetgroup.json (98%) delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-msk-batchscramsecret.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-route53resolver-resolverconfig.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-workspacesthinclient-environment.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 57cda9b32d..fdbbfb29e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +### v1.2.1a3 +###### Fixes +- Pass through all errors from `Fn::If`` (pull #[2583](https://github.com/aws-cloudformation/cfn-lint/pull/2583)) + ### v1.2.1a2 ###### Fixes - Redo AWS::CloudFormation::Init validation (pull #[2583](https://github.com/aws-cloudformation/cfn-lint/pull/2583)) diff --git a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json index fe246cd338..90820bbed4 100644 --- a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json @@ -1 +1 @@ -{"etag": "\"0a2a7bf5257610edda879adb0dff6dea\"", "url": "https://schema.cloudformation.eu-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"c4554b2486f55661d5fb3183d8a96f76\"", "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 0cf92bdb5d..31c76609db 100644 --- a/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json @@ -1 +1 @@ -{"etag": "\"0408925c55e2d46ec31dd7e101866a67\"", "url": "https://schema.cloudformation.cn-north-1.amazonaws.com.cn/CloudformationSchema.zip"} +{"etag": "\"848273a1e4b412521297f59b18420f25\"", "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 3de5df5177..ee50d9772b 100644 --- a/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json @@ -1 +1 @@ -{"etag": "\"c47fd056dea08775121d9042c5a3b8b6\"", "url": "https://schema.cloudformation.us-gov-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"9f4830c00d7f87ca853986d2545f1d01\"", "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 6a77c9b6b6..4e18a8f616 100644 --- a/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json @@ -1 +1 @@ -{"etag": "\"5e3e70539b52bacb621536c004890129\"", "url": "https://schema.cloudformation.me-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"de99ba2b8c361a7fc9c287ff97fa454b\"", "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 cc18d0ac53..e456a83b24 100644 --- a/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json @@ -1 +1 @@ -{"etag": "\"49f717d85d7134d3407d453136758c6c\"", "url": "https://schema.cloudformation.us-gov-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"92867531227472953a107325da357227\"", "url": "https://schema.cloudformation.us-gov-west-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json b/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json index e83858fe57..52842fa493 100644 --- a/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json @@ -1 +1 @@ -{"etag": "\"27a013abef82ec5ee271e2a129b72827\"", "url": "https://schema.cloudformation.eu-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"bfcc6d0d7b35a0bb02a5eec055c72c54\"", "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 668cb5a50d..3c7f17bd1a 100644 --- a/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json @@ -1 +1 @@ -{"etag": "\"ba608f0651b3d7c948ec82e20eb41c70\"", "url": "https://schema.cloudformation.cn-northwest-1.amazonaws.com.cn/CloudformationSchema.zip"} +{"etag": "\"a975a010ed2e978601932a1e23e39ca1\"", "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 39db9fd913..6142c2ddeb 100644 --- a/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json @@ -1 +1 @@ -{"etag": "\"3fbaa5261c6cf2e4835d7bf9c0903e57\"", "url": "https://schema.cloudformation.af-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"602e275f1b6d9140ddff40bf85df074b\"", "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 571997c5c2..b1391ed4f8 100644 --- a/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json @@ -1 +1 @@ -{"etag": "\"adf56447e4af003965b0b51cea88be90\"", "url": "https://schema.cloudformation.us-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"4adab7a2cbe16fd1d5f5166f8ed96490\"", "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 3795c15af1..7968259820 100644 --- a/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json @@ -1 +1 @@ -{"etag": "\"e44a3faef6b76fcf0e1e881c5cc803b4\"", "url": "https://schema.cloudformation.eu-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"abf1cbf8ec2ca95a841fafa65f203d73\"", "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 1aafac17b8..f6d5410cbc 100644 --- a/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json @@ -1 +1 @@ -{"etag": "\"695bb91acb03b7caa1d4cd7a1d0a4d67\"", "url": "https://schema.cloudformation.ap-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"553ead8c6383a5513e89c118fc0a76fa\"", "url": "https://schema.cloudformation.ap-south-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json b/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json index 6a2aa1f2de..640570ed49 100644 --- a/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json @@ -1 +1 @@ -{"etag": "\"9e5779959cd1cfdb1652063c58aa61aa\"", "url": "https://schema.cloudformation.us-east-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"9cab9e4e7c42070646ea5cb7ddf12673\"", "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 214f46ed13..0b759cb323 100644 --- a/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json @@ -1 +1 @@ -{"etag": "\"4db2208b7a5e6bae0c6c35e51ce6d535\"", "url": "https://schema.cloudformation.ap-southeast-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"55c3c6a57c4fdcdfe19a2f9fc1b37709\"", "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 a39b6c0196..69d588983d 100644 --- a/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json @@ -1 +1 @@ -{"etag": "\"b5fb2c19a1fd603c479c8dbbe089c901\"", "url": "https://schema.cloudformation.ap-northeast-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"99637874245e0fc4d689e089b509c71f\"", "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 d3598c2f02..79ef83a12f 100644 --- a/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json @@ -1 +1 @@ -{"etag": "\"c7c9e121e6a0fad26e2f24ff86c91fae\"", "url": "https://schema.cloudformation.ap-southeast-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"5a405c8d79e003f96c7f914257515a28\"", "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 72baec6e0e..1100668f64 100644 --- a/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json @@ -1 +1 @@ -{"etag": "\"6f046b332de124bb35d3eb2102c11047\"", "url": "https://schema.cloudformation.ap-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"e6fd332f9e862d78ec3d13e5bbc14ac1\"", "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 74098cd6df..4d2c6326f7 100644 --- a/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json @@ -1 +1 @@ -{"etag": "\"84667072bec1e53ae757030929fb1825\"", "url": "https://schema.cloudformation.sa-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"dac2729a26b353b780477f7c85b503b5\"", "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 5c07d2b0ad..5b7b1043d8 100644 --- a/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json @@ -1 +1 @@ -{"etag": "\"339c8710f54217d7424c5dfddb329c3e\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"6a558346b34aae0703fab2175d6fedeb\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json b/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json index bfa1439eb2..0e4f04420b 100644 --- a/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json @@ -1 +1 @@ -{"etag": "\"dcbe69a9974a9f86b10ca60c8de44fd5\"", "url": "https://schema.cloudformation.eu-north-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"bada6fdfb00327bec04e8816442a1c86\"", "url": "https://schema.cloudformation.eu-north-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json b/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json index 8507298e38..ea48eb24e9 100644 --- a/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json @@ -1 +1 @@ -{"etag": "\"51c703118c1962ad58a0dd659e62b133\"", "url": "https://schema.cloudformation.ca-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"40972194f50e4736b8430ddbf8b38171\"", "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 a4762fba41..ea2fc95364 100644 --- a/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json @@ -1 +1 @@ -{"etag": "\"6ada9548ad2a08b7c72e52444146559a\"", "url": "https://schema.cloudformation.eu-west-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"352dafc39c9395124f50fceef38e1d42\"", "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 eda7bec215..a29b336a2b 100644 --- a/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json @@ -1 +1 @@ -{"etag": "\"a548df76f10eb960c4c4d04aa2a647ce\"", "url": "https://schema.cloudformation.ap-northeast-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"20a68803f995b17afe0e9338003d4639\"", "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 2daf1ca978..e9a35d9fd3 100644 --- a/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json @@ -1 +1 @@ -{"etag": "\"50876ab1a4695899abc4dac9982a834f\"", "url": "https://schema.cloudformation.us-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"4ba4d2eba5a611c1e448280da877c5b2\"", "url": "https://schema.cloudformation.us-west-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json b/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json index 501c69f5ab..20f1a3d1b9 100644 --- a/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json @@ -1 +1 @@ -{"etag": "\"e26274a3e45ea12a18de2dc103a89dc5\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"b06383fcaf89bad0cc0f8237db14ce73\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json index 1ca131231c..ff8fe5eb7b 100644 --- a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json @@ -1 +1 @@ -{"etag": "\"ce574b988eaf224ffbe1b641bfc1e986\"", "url": "https://schema.cloudformation.eu-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"958c67c4835894c0d88bb4b40f3a2e15\"", "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 3e078b1985..23c10081f8 100644 --- a/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json @@ -1 +1 @@ -{"etag": "\"041cc17ef3ca49617b4bfca3beb47ad6\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"3108f0dd509ed81ddc5862eb093c4209\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/__init__.py b/src/cfnlint/data/schemas/providers/af_south_1/__init__.py index d2464885c7..a45e597e92 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/af_south_1/__init__.py @@ -5,6 +5,7 @@ "AWS::CDK::Metadata", "AWS::ApiGatewayV2::Integration", "AWS::ApiGatewayV2::ApiMapping", + "AWS::CE::AnomalySubscription", "AWS::Shield::DRTAccess", "AWS::SSO::Assignment", "AWS::Glue::Partition", @@ -85,6 +86,7 @@ "AWS::CloudTrail::EventDataStore", "AWS::KinesisFirehose::DeliveryStream", "AWS::EC2::NetworkInsightsAccessScope", + "AWS::Cognito::UserPoolUserToGroupAttachment", "AWS::PCAConnectorAD::DirectoryRegistration", "AWS::SageMaker::CodeRepository", "AWS::ImageBuilder::Component", @@ -197,6 +199,7 @@ "AWS::GuardDuty::Member", "AWS::GroundStation::MissionProfile", "AWS::CloudFormation::CustomResource", + "AWS::FIS::TargetAccountConfiguration", "AWS::WAFv2::RuleGroup", "AWS::SageMaker::ModelPackageGroup", "AWS::SES::ConfigurationSet", @@ -284,6 +287,7 @@ "AWS::Route53Resolver::FirewallRuleGroup", "AWS::MSK::Configuration", "AWS::EC2::TransitGateway", + "AWS::Cognito::UserPoolGroup", "AWS::EC2::VPCEndpointServicePermissions", "AWS::SSM::MaintenanceWindowTask", "AWS::EC2::TransitGatewayMulticastDomain", @@ -348,6 +352,7 @@ "AWS::CloudFront::KeyGroup", "AWS::EC2::NetworkInterfaceAttachment", "AWS::EC2::TransitGatewayAttachment", + "AWS::Cognito::UserPoolUser", "AWS::Connect::ContactFlowModule", "AWS::CodeDeploy::DeploymentConfig", "AWS::NetworkManager::GlobalNetwork", @@ -389,6 +394,7 @@ "AWS::ServiceCatalog::AcceptedPortfolioShare", "AWS::Route53Resolver::FirewallRuleGroupAssociation", "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", "AWS::EC2::Subnet", "AWS::CloudTrail::ResourcePolicy", "AWS::S3ObjectLambda::AccessPoint", @@ -515,6 +521,7 @@ "AWS::IAM::UserPolicy", "AWS::Connect::ViewVersion", "AWS::CloudFront::OriginAccessControl", + "AWS::Cognito::UserPool", "AWS::SecretsManager::RotationSchedule", "AWS::Lambda::Permission", "AWS::NetworkFirewall::FirewallPolicy", @@ -662,6 +669,7 @@ "AWS::CertificateManager::Account", "AWS::IAM::OIDCProvider", "AWS::LakeFormation::Tag", + "AWS::CE::AnomalyMonitor", "AWS::ServiceCatalogAppRegistry::ResourceAssociation", "AWS::EC2::VPNGateway", "AWS::CloudFormation::Stack", @@ -696,6 +704,7 @@ "AWS::MediaTailor::PlaybackConfiguration", "AWS::PCAConnectorAD::ServicePrincipalName", "AWS::ElasticBeanstalk::Environment", + "AWS::Cognito::UserPoolClient", "AWS::WAFRegional::SqlInjectionMatchSet", "AWS::Lambda::Version", "AWS::EC2::DHCPOptions", @@ -709,6 +718,7 @@ "AWS::VerifiedPermissions::Policy", "AWS::CloudFormation::ResourceVersion", "AWS::ApiGatewayV2::Stage", + "AWS::Cognito::LogDeliveryConfiguration", "AWS::Chatbot::MicrosoftTeamsChannelConfiguration", "AWS::RDS::DBProxy", "AWS::RDS::DBParameterGroup", @@ -727,6 +737,7 @@ cached: List[str] = [ "aws-apigatewayv2-integration.json", "aws-apigatewayv2-apimapping.json", + "aws-ce-anomalysubscription.json", "aws-shield-drtaccess.json", "aws-sso-assignment.json", "aws-glue-partition.json", @@ -753,7 +764,6 @@ "aws-s3outposts-accesspoint.json", "aws-ec2-ipampoolcidr.json", "aws-redshift-clustersubnetgroup.json", - "aws-rds-dbinstance.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-apigateway-model.json", "aws-apigatewayv2-integrationresponse.json", @@ -798,6 +808,7 @@ "aws-cloudtrail-eventdatastore.json", "aws-kinesisfirehose-deliverystream.json", "aws-ec2-networkinsightsaccessscope.json", + "aws-cognito-userpoolusertogroupattachment.json", "aws-pcaconnectorad-directoryregistration.json", "aws-sagemaker-coderepository.json", "aws-imagebuilder-component.json", @@ -824,7 +835,6 @@ "aws-msk-cluster.json", "aws-ec2-vpcendpointconnectionnotification.json", "aws-config-configurationaggregator.json", - "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -842,6 +852,7 @@ "aws-glue-devendpoint.json", "aws-sagemaker-modelpackage.json", "aws-customerprofiles-integration.json", + "aws-eventschemas-discoverer.json", "aws-elasticache-usergroup.json", "aws-imagebuilder-imagerecipe.json", "aws-apigateway-restapi.json", @@ -864,11 +875,11 @@ "aws-sns-topic.json", "aws-backup-backupselection.json", "aws-datasync-locationfsxlustre.json", - "aws-sagemaker-app.json", "aws-ec2-vpcgatewayattachment.json", "aws-cloudtrail-trail.json", "aws-ec2-vpnconnectionroute.json", "aws-ec2-internetgateway.json", + "aws-ec2-gatewayroutetableassociation.json", "aws-wafv2-ipset.json", "aws-mediaconnect-bridgeoutput.json", "aws-ssm-document.json", @@ -889,7 +900,6 @@ "aws-s3outposts-endpoint.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", - "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-wafregional-xssmatchset.json", "aws-rds-dbproxytargetgroup.json", @@ -898,6 +908,7 @@ "aws-guardduty-member.json", "aws-groundstation-missionprofile.json", "aws-cloudformation-customresource.json", + "aws-fis-targetaccountconfiguration.json", "aws-wafv2-rulegroup.json", "aws-sagemaker-modelpackagegroup.json", "aws-ses-configurationset.json", @@ -905,10 +916,8 @@ "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", - "aws-codedeploy-deploymentgroup.json", "aws-sagemaker-inferenceexperiment.json", "aws-cloudformation-stackset.json", - "aws-ec2-route.json", "aws-fis-experimenttemplate.json", "aws-cloudformation-hookversion.json", "aws-rolesanywhere-profile.json", @@ -936,6 +945,7 @@ "aws-fms-notificationchannel.json", "aws-msk-batchscramsecret.json", "aws-dms-certificate.json", + "aws-s3-bucket.json", "aws-guardduty-ipset.json", "aws-servicediscovery-httpnamespace.json", "aws-emr-securityconfiguration.json", @@ -977,6 +987,7 @@ "aws-route53resolver-firewallrulegroup.json", "aws-msk-configuration.json", "aws-ec2-transitgateway.json", + "aws-cognito-userpoolgroup.json", "aws-ec2-vpcendpointservicepermissions.json", "aws-ssm-maintenancewindowtask.json", "aws-ec2-transitgatewaymulticastdomain.json", @@ -987,7 +998,6 @@ "aws-logs-querydefinition.json", "aws-iam-instanceprofile.json", "aws-datasync-locationnfs.json", - "aws-sagemaker-domain.json", "aws-certificatemanager-certificate.json", "aws-glue-schemaversionmetadata.json", "aws-sdb-domain.json", @@ -1038,12 +1048,12 @@ "aws-appflow-connector.json", "aws-cloudfront-keygroup.json", "aws-ec2-networkinterfaceattachment.json", + "aws-cognito-userpooluser.json", "aws-connect-contactflowmodule.json", "aws-codedeploy-deploymentconfig.json", "aws-networkmanager-globalnetwork.json", "aws-connect-tasktemplate.json", "aws-stepfunctions-statemachineversion.json", - "aws-servicecatalogappregistry-application.json", "aws-networkmanager-site.json", "aws-glue-database.json", "aws-neptune-dbcluster.json", @@ -1078,6 +1088,8 @@ "aws-route53resolver-resolverdnssecconfig.json", "aws-route53resolver-firewallrulegroupassociation.json", "aws-route53resolver-resolverqueryloggingconfig.json", + "aws-ec2-snapshotblockpublicaccess.json", + "aws-ec2-subnet.json", "aws-cloudtrail-resourcepolicy.json", "aws-s3objectlambda-accesspoint.json", "aws-elasticbeanstalk-configurationtemplate.json", @@ -1120,10 +1132,8 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", - "aws-emr-cluster.json", "aws-apigatewayv2-domainname.json", "aws-customerprofiles-eventstream.json", - "aws-rds-dbcluster.json", "aws-servicecatalog-resourceupdateconstraint.json", "aws-transfer-agreement.json", "aws-chatbot-slackchannelconfiguration.json", @@ -1150,11 +1160,12 @@ "aws-elasticloadbalancingv2-targetgroup.json", "aws-applicationautoscaling-scalingpolicy.json", "aws-pipes-pipe.json", + "aws-emr-studiosessionmapping.json", "aws-cloudformation-macro.json", "aws-sagemaker-workteam.json", "aws-lambda-layerversionpermission.json", "aws-secretsmanager-secret.json", - "aws-elasticache-user.json", + "aws-route53resolver-resolverconfig.json", "aws-sagemaker-image.json", "aws-logs-subscriptionfilter.json", "aws-codedeploy-application.json", @@ -1194,6 +1205,7 @@ "aws-iam-userpolicy.json", "aws-connect-viewversion.json", "aws-cloudfront-originaccesscontrol.json", + "aws-cognito-userpool.json", "aws-secretsmanager-rotationschedule.json", "aws-lambda-permission.json", "aws-networkfirewall-firewallpolicy.json", @@ -1201,7 +1213,6 @@ "aws-ec2-ipamresourcediscoveryassociation.json", "aws-servicecatalogappregistry-attributegroup.json", "aws-ec2-clientvpntargetnetworkassociation.json", - "aws-appsync-graphqlapi.json", "aws-ec2-egressonlyinternetgateway.json", "aws-ec2-vpccidrblock.json", "aws-iam-virtualmfadevice.json", @@ -1256,7 +1267,6 @@ "aws-mediaconnect-flowvpcinterface.json", "aws-glue-workflow.json", "aws-apigatewayv2-authorizer.json", - "aws-sagemaker-userprofile.json", "aws-ec2-prefixlist.json", "aws-ec2-instance.json", "aws-networkmanager-device.json", @@ -1295,6 +1305,7 @@ "aws-ec2-instanceconnectendpoint.json", "aws-appsync-sourceapiassociation.json", "aws-datasync-locationobjectstorage.json", + "aws-ecs-capacityprovider.json", "aws-elasticache-cachecluster.json", "aws-sagemaker-modelcard.json", "aws-logs-destination.json", @@ -1324,6 +1335,7 @@ "aws-certificatemanager-account.json", "aws-iam-oidcprovider.json", "aws-lakeformation-tag.json", + "aws-ce-anomalymonitor.json", "aws-servicecatalogappregistry-resourceassociation.json", "aws-ec2-vpngateway.json", "aws-cloudformation-stack.json", @@ -1354,6 +1366,7 @@ "aws-mediatailor-playbackconfiguration.json", "aws-pcaconnectorad-serviceprincipalname.json", "aws-elasticbeanstalk-environment.json", + "aws-cognito-userpoolclient.json", "aws-wafregional-sqlinjectionmatchset.json", "aws-lambda-version.json", "aws-ec2-dhcpoptions.json", @@ -1365,10 +1378,10 @@ "aws-verifiedpermissions-policy.json", "aws-cloudformation-resourceversion.json", "aws-apigatewayv2-stage.json", + "aws-cognito-logdeliveryconfiguration.json", "aws-chatbot-microsoftteamschannelconfiguration.json", "aws-rds-dbproxy.json", "aws-rds-dbparametergroup.json", - "aws-securityhub-hub.json", "aws-s3-accesspoint.json", "aws-s3outposts-bucketpolicy.json", "aws-batch-jobqueue.json", diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-appsync-graphqlapi.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-appsync-graphqlapi.json new file mode 100644 index 0000000000..077c3fd5af --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-appsync-graphqlapi.json @@ -0,0 +1,222 @@ +{ + "additionalProperties": false, + "definitions": { + "AdditionalAuthenticationProvider": { + "additionalProperties": false, + "properties": { + "AuthenticationType": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "UserPoolConfig": { + "$ref": "#/definitions/CognitoUserPoolConfig" + } + }, + "required": [ + "AuthenticationType" + ], + "type": "object" + }, + "CognitoUserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "LambdaAuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsRoleArn": { + "type": "string" + }, + "ExcludeVerboseContent": { + "type": "boolean" + }, + "FieldLogLevel": { + "type": "string" + } + }, + "type": "object" + }, + "OpenIDConnectConfig": { + "additionalProperties": false, + "properties": { + "AuthTTL": { + "type": "number" + }, + "ClientId": { + "type": "string" + }, + "IatTTL": { + "type": "number" + }, + "Issuer": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "UserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "DefaultAction": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AppSync::GraphQLApi", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalAuthenticationProviders": { + "items": { + "$ref": "#/definitions/AdditionalAuthenticationProvider" + }, + "type": "array", + "uniqueItems": false + }, + "ApiId": { + "type": "string" + }, + "ApiType": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "AuthenticationType": { + "enum": [ + "API_KEY", + "AWS_IAM", + "AMAZON_COGNITO_USER_POOLS", + "OPENID_CONNECT", + "AWS_LAMBDA" + ], + "type": "string" + }, + "GraphQLDns": { + "type": "string" + }, + "GraphQLEndpointArn": { + "type": "string" + }, + "GraphQLUrl": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "LogConfig": { + "$ref": "#/definitions/LogConfig" + }, + "MergedApiExecutionRoleArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "OwnerContact": { + "type": "string" + }, + "RealtimeDns": { + "type": "string" + }, + "RealtimeUrl": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UserPoolConfig": { + "$ref": "#/definitions/UserPoolConfig" + }, + "Visibility": { + "type": "string" + }, + "XrayEnabled": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/ApiId", + "/properties/GraphQLEndpointArn", + "/properties/Id", + "/properties/GraphQLDns", + "/properties/GraphQLUrl", + "/properties/RealtimeDns", + "/properties/RealtimeUrl", + "/properties/Arn" + ], + "required": [ + "Name", + "AuthenticationType" + ], + "typeName": "AWS::AppSync::GraphQLApi" +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-codedeploy-deploymentgroup.json new file mode 100644 index 0000000000..208990a115 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-codedeploy-deploymentgroup.json @@ -0,0 +1,523 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentGroupName", + "/properties/ApplicationName" + ], + "definitions": { + "Alarm": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AlarmConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/Alarm" + }, + "type": "array", + "uniqueItems": true + }, + "Enabled": { + "type": "boolean" + }, + "IgnorePollAlarmFailure": { + "type": "boolean" + } + }, + "type": "object" + }, + "AutoRollbackConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Events": { + "items": { + "enum": [ + "DEPLOYMENT_FAILURE", + "DEPLOYMENT_STOP_ON_ALARM", + "DEPLOYMENT_STOP_ON_REQUEST" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "BlueGreenDeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "DeploymentReadyOption": { + "$ref": "#/definitions/DeploymentReadyOption" + }, + "GreenFleetProvisioningOption": { + "$ref": "#/definitions/GreenFleetProvisioningOption" + }, + "TerminateBlueInstancesOnDeploymentSuccess": { + "$ref": "#/definitions/BlueInstanceTerminationOption" + } + }, + "type": "object" + }, + "BlueInstanceTerminationOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "TerminationWaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "Deployment": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "IgnoreApplicationStopFailures": { + "type": "boolean" + }, + "Revision": { + "$ref": "#/definitions/RevisionLocation" + } + }, + "required": [ + "Revision" + ], + "type": "object" + }, + "DeploymentReadyOption": { + "additionalProperties": false, + "properties": { + "ActionOnTimeout": { + "type": "string" + }, + "WaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentStyle": { + "additionalProperties": false, + "properties": { + "DeploymentOption": { + "enum": [ + "WITH_TRAFFIC_CONTROL", + "WITHOUT_TRAFFIC_CONTROL" + ], + "type": "string" + }, + "DeploymentType": { + "enum": [ + "IN_PLACE", + "BLUE_GREEN" + ], + "type": "string" + } + }, + "type": "object" + }, + "EC2TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "EC2TagSet": { + "additionalProperties": false, + "properties": { + "Ec2TagSetList": { + "items": { + "$ref": "#/definitions/EC2TagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EC2TagSetListObject": { + "additionalProperties": false, + "properties": { + "Ec2TagGroup": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ECSService": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + } + }, + "required": [ + "ServiceName", + "ClusterName" + ], + "type": "object" + }, + "ELBInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "GitHubLocation": { + "additionalProperties": false, + "properties": { + "CommitId": { + "type": "string" + }, + "Repository": { + "type": "string" + } + }, + "required": [ + "Repository", + "CommitId" + ], + "type": "object" + }, + "GreenFleetProvisioningOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "type": "object" + }, + "LoadBalancerInfo": { + "additionalProperties": false, + "properties": { + "ElbInfoList": { + "items": { + "$ref": "#/definitions/ELBInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupPairInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupPairInfo" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSet": { + "additionalProperties": false, + "properties": { + "OnPremisesTagSetList": { + "items": { + "$ref": "#/definitions/OnPremisesTagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSetListObject": { + "additionalProperties": false, + "properties": { + "OnPremisesTagGroup": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "RevisionLocation": { + "additionalProperties": false, + "properties": { + "GitHubLocation": { + "$ref": "#/definitions/GitHubLocation" + }, + "RevisionType": { + "type": "string" + }, + "S3Location": { + "$ref": "#/definitions/S3Location" + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "BundleType": { + "type": "string" + }, + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupPairInfo": { + "additionalProperties": false, + "properties": { + "ProdTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + }, + "TargetGroups": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TestTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + } + }, + "type": "object" + }, + "TrafficRoute": { + "additionalProperties": false, + "properties": { + "ListenerArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerEvents": { + "items": { + "enum": [ + "DeploymentStart", + "DeploymentSuccess", + "DeploymentFailure", + "DeploymentStop", + "DeploymentRollback", + "DeploymentReady", + "InstanceStart", + "InstanceSuccess", + "InstanceFailure", + "InstanceReady" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "TriggerName": { + "type": "string" + }, + "TriggerTargetArn": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AlarmConfiguration": { + "$ref": "#/definitions/AlarmConfiguration" + }, + "ApplicationName": { + "type": "string" + }, + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AutoRollbackConfiguration" + }, + "AutoScalingGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BlueGreenDeploymentConfiguration": { + "$ref": "#/definitions/BlueGreenDeploymentConfiguration" + }, + "Deployment": { + "$ref": "#/definitions/Deployment" + }, + "DeploymentConfigName": { + "type": "string" + }, + "DeploymentGroupName": { + "type": "string" + }, + "DeploymentStyle": { + "$ref": "#/definitions/DeploymentStyle" + }, + "ECSServices": { + "items": { + "$ref": "#/definitions/ECSService" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagFilters": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagSet": { + "$ref": "#/definitions/EC2TagSet" + }, + "Id": { + "type": "string" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/LoadBalancerInfo" + }, + "OnPremisesInstanceTagFilters": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "OnPremisesTagSet": { + "$ref": "#/definitions/OnPremisesTagSet" + }, + "OutdatedInstancesStrategy": { + "type": "string" + }, + "ServiceRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TerminationHookEnabled": { + "type": "boolean" + }, + "TriggerConfigurations": { + "items": { + "$ref": "#/definitions/TriggerConfig" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "ServiceRoleArn" + ], + "typeName": "AWS::CodeDeploy::DeploymentGroup" +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-gatewayroutetableassociation.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-gatewayroutetableassociation.json deleted file mode 100644 index 8cd7eb714b..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-gatewayroutetableassociation.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GatewayId" - ], - "description": "Associates a gateway with a route table. The gateway and route table must be in the same VPC. This association causes the incoming traffic to the gateway to be routed according to the routes in the route table.", - "handlers": { - "create": { - "permissions": [ - "ec2:AssociateRouteTable" - ] - }, - "delete": { - "permissions": [ - "ec2:DescribeRouteTables", - "ec2:DisassociateRouteTable" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeRouteTables" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeRouteTables", - "ec2:ReplaceRouteTableAssociation" - ] - } - }, - "primaryIdentifier": [ - "/properties/GatewayId" - ], - "properties": { - "AssociationId": { - "description": "The route table association ID.", - "type": "string" - }, - "GatewayId": { - "description": "The ID of the gateway.", - "type": "string" - }, - "RouteTableId": { - "description": "The ID of the route table.", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/AssociationId" - ], - "required": [ - "RouteTableId", - "GatewayId" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-gatewayroutetableassociation.html", - "typeName": "AWS::EC2::GatewayRouteTableAssociation" -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-route.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-route.json new file mode 100644 index 0000000000..722dba73ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-route.json @@ -0,0 +1,129 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RouteTableId", + "/properties/DestinationCidrBlock", + "/properties/DestinationIpv6CidrBlock", + "/properties/DestinationPrefixListId" + ], + "description": "Resource Type definition for AWS::EC2::Route", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateRoute", + "ec2:DescribeRouteTables", + "ec2:DescribeNetworkInterfaces" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteRoute", + "ec2:DescribeRouteTables" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "RouteTableId": { + "$ref": "resource-schema.json#/properties/RouteTableId" + } + }, + "required": [ + "RouteTableId" + ] + }, + "permissions": [ + "ec2:DescribeRouteTables" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeRouteTables" + ] + }, + "update": { + "permissions": [ + "ec2:ReplaceRoute", + "ec2:DescribeRouteTables", + "ec2:DescribeNetworkInterfaces" + ] + } + }, + "primaryIdentifier": [ + "/properties/RouteTableId", + "/properties/CidrBlock" + ], + "properties": { + "CarrierGatewayId": { + "description": "The ID of the carrier gateway.", + "type": "string" + }, + "CidrBlock": { + "description": "The primary identifier of the resource generated by the service.", + "type": "string" + }, + "DestinationCidrBlock": { + "description": "The IPv4 CIDR block used for the destination match.", + "type": "string" + }, + "DestinationIpv6CidrBlock": { + "description": "The IPv6 CIDR block used for the destination match.", + "type": "string" + }, + "DestinationPrefixListId": { + "description": "The ID of managed prefix list, it's a set of one or more CIDR blocks.", + "type": "string" + }, + "EgressOnlyInternetGatewayId": { + "description": "The ID of the egress-only internet gateway.", + "type": "string" + }, + "GatewayId": { + "description": "The ID of an internet gateway or virtual private gateway attached to your VPC.", + "type": "string" + }, + "InstanceId": { + "description": "The ID of a NAT instance in your VPC.", + "type": "string" + }, + "LocalGatewayId": { + "description": "The ID of the local gateway.", + "type": "string" + }, + "NatGatewayId": { + "description": "The ID of a NAT gateway.", + "type": "string" + }, + "NetworkInterfaceId": { + "description": "The ID of the network interface.", + "type": "string" + }, + "RouteTableId": { + "description": "The ID of the route table. The routing table must be associated with the same VPC that the virtual private gateway is attached to.", + "type": "string" + }, + "TransitGatewayId": { + "description": "The ID of a transit gateway.", + "type": "string" + }, + "VpcEndpointId": { + "description": "The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.", + "type": "string" + }, + "VpcPeeringConnectionId": { + "description": "The ID of a VPC peering connection.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CidrBlock" + ], + "required": [ + "RouteTableId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2", + "tagging": { + "taggable": false + }, + "typeName": "AWS::EC2::Route" +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-subnet.json deleted file mode 100644 index 4a658f1cd4..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-subnet.json +++ /dev/null @@ -1,158 +0,0 @@ -{ - "additionalProperties": false, - "conditionalCreateOnlyProperties": [ - "/properties/Ipv6CidrBlock" - ], - "createOnlyProperties": [ - "/properties/VpcId", - "/properties/AvailabilityZone", - "/properties/AvailabilityZoneId", - "/properties/CidrBlock", - "/properties/OutpostArn", - "/properties/Ipv6Native" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EC2::Subnet", - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeSubnets", - "ec2:CreateSubnet", - "ec2:CreateTags", - "ec2:ModifySubnetAttribute" - ] - }, - "delete": { - "permissions": [ - "ec2:DescribeSubnets", - "ec2:DeleteSubnet" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeSubnets", - "ec2:DescribeNetworkAcls" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeSubnets", - "ec2:DescribeNetworkAcls" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeSubnets", - "ec2:ModifySubnetAttribute", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:AssociateSubnetCidrBlock", - "ec2:DisassociateSubnetCidrBlock" - ] - } - }, - "primaryIdentifier": [ - "/properties/SubnetId" - ], - "properties": { - "AssignIpv6AddressOnCreation": { - "type": "boolean" - }, - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - }, - "AvailabilityZoneId": { - "type": "string" - }, - "CidrBlock": { - "type": "string" - }, - "EnableDns64": { - "type": "boolean" - }, - "Ipv6CidrBlock": { - "type": "string" - }, - "Ipv6CidrBlocks": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Ipv6Native": { - "type": "boolean" - }, - "MapPublicIpOnLaunch": { - "type": "boolean" - }, - "NetworkAclAssociationId": { - "type": "string" - }, - "OutpostArn": { - "type": "string" - }, - "PrivateDnsNameOptionsOnLaunch": { - "additionalProperties": false, - "properties": { - "EnableResourceNameDnsAAAARecord": { - "type": "boolean" - }, - "EnableResourceNameDnsARecord": { - "type": "boolean" - }, - "HostnameType": { - "type": "string" - } - }, - "type": "object" - }, - "SubnetId": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VpcId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/NetworkAclAssociationId", - "/properties/SubnetId", - "/properties/Ipv6CidrBlocks" - ], - "required": [ - "VpcId" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::Subnet" -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-ecs-capacityprovider.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ecs-capacityprovider.json deleted file mode 100644 index 4149de6605..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-ecs-capacityprovider.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AutoScalingGroupProvider/AutoScalingGroupArn", - "/properties/Name" - ], - "definitions": { - "AutoScalingGroupProvider": { - "additionalProperties": false, - "properties": { - "AutoScalingGroupArn": { - "type": "string" - }, - "ManagedScaling": { - "$ref": "#/definitions/ManagedScaling" - }, - "ManagedTerminationProtection": { - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - } - }, - "required": [ - "AutoScalingGroupArn" - ], - "type": "object" - }, - "ManagedScaling": { - "additionalProperties": false, - "description": "The managed scaling settings for the Auto Scaling group capacity provider.", - "properties": { - "InstanceWarmupPeriod": { - "type": "integer" - }, - "MaximumScalingStepSize": { - "type": "integer" - }, - "MinimumScalingStepSize": { - "type": "integer" - }, - "Status": { - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "TargetCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "minLength": 1, - "type": "string" - }, - "Value": { - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::ECS::CapacityProvider.", - "handlers": { - "create": { - "permissions": [ - "autoscaling:CreateOrUpdateTags", - "ecs:CreateCapacityProvider", - "ecs:DescribeCapacityProviders" - ] - }, - "delete": { - "permissions": [ - "ecs:DescribeCapacityProviders", - "ecs:DeleteCapacityProvider" - ] - }, - "list": { - "permissions": [ - "ecs:DescribeCapacityProviders" - ] - }, - "read": { - "permissions": [ - "ecs:DescribeCapacityProviders" - ] - }, - "update": { - "permissions": [ - "ecs:UpdateCapacityProvider", - "ecs:DescribeCapacityProviders", - "ecs:ListTagsForResource", - "ecs:TagResource", - "ecs:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Name" - ], - "properties": { - "AutoScalingGroupProvider": { - "$ref": "#/definitions/AutoScalingGroupProvider" - }, - "Name": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "propertyTransform": { - "/properties/AutoScalingGroupProvider/AutoScalingGroupArn": "$split(AutoScalingGroupProvider.AutoScalingGroupArn, \"autoScalingGroupName/\")[-1]" - }, - "required": [ - "AutoScalingGroupProvider" - ], - "typeName": "AWS::ECS::CapacityProvider" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-memorydb-user.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-elasticache-user.json similarity index 59% rename from src/cfnlint/data/schemas/providers/us_west_2/aws-memorydb-user.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-elasticache-user.json index 406f6e99f7..9aca62e6f8 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-memorydb-user.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-elasticache-user.json @@ -1,7 +1,9 @@ { "additionalProperties": false, "createOnlyProperties": [ - "/properties/UserName" + "/properties/UserId", + "/properties/UserName", + "/properties/Engine" ], "definitions": { "Tag": { @@ -29,46 +31,46 @@ "type": "object" } }, - "description": "Resource Type definition for AWS::MemoryDB::User", + "description": "Resource Type definition for AWS::ElastiCache::User", "handlers": { "create": { "permissions": [ - "memorydb:CreateUser", - "memorydb:DescribeUsers", - "memorydb:TagResource", - "memorydb:ListTags" + "elasticache:CreateUser", + "elasticache:DescribeUsers", + "elasticache:ListTagsForResource", + "elasticache:AddTagsToResource" ] }, "delete": { "permissions": [ - "memorydb:DeleteUser", - "memorydb:DescribeUsers" + "elasticache:DeleteUser", + "elasticache:DescribeUsers" ] }, "list": { "permissions": [ - "memorydb:DescribeUsers", - "memorydb:ListTags" + "elasticache:DescribeUsers", + "elasticache:ListTagsForResource" ] }, "read": { "permissions": [ - "memorydb:DescribeUsers", - "memorydb:ListTags" + "elasticache:DescribeUsers", + "elasticache:ListTagsForResource" ] }, "update": { "permissions": [ - "memorydb:UpdateUser", - "memorydb:DescribeUsers", - "memorydb:ListTags", - "memorydb:TagResource", - "memorydb:UntagResource" + "elasticache:ModifyUser", + "elasticache:DescribeUsers", + "elasticache:ListTagsForResource", + "elasticache:AddTagsToResource", + "elasticache:RemoveTagsFromResource" ] } }, "primaryIdentifier": [ - "/properties/UserName" + "/properties/UserId" ], "properties": { "AccessString": { @@ -89,22 +91,45 @@ "items": { "type": "string" }, - "maxItems": 2, - "minItems": 1, "type": "array", "uniqueItems": true }, "Type": { - "description": "Type of authentication strategy for this user.", + "description": "Authentication Type", "enum": [ "password", + "no-password-required", "iam" ], "type": "string" } }, + "required": [ + "Type" + ], "type": "object" }, + "Engine": { + "description": "Must be redis.", + "enum": [ + "redis" + ], + "type": "string" + }, + "NoPasswordRequired": { + "description": "Indicates a password is not required for this user account.", + "type": "boolean" + }, + "Passwords": { + "$comment": "List of passwords.", + "description": "Passwords used for this user account. You can create up to two passwords for each user.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, "Status": { "description": "Indicates the user status. Can be \"active\", \"modifying\" or \"deleting\".", "type": "string" @@ -119,10 +144,14 @@ "type": "array", "uniqueItems": true }, - "UserName": { - "description": "The name of the user.", + "UserId": { + "description": "The ID of the user.", "pattern": "[a-z][a-z0-9\\\\-]*", "type": "string" + }, + "UserName": { + "description": "The username of the user.", + "type": "string" } }, "readOnlyProperties": [ @@ -130,13 +159,23 @@ "/properties/Arn" ], "required": [ - "UserName" + "UserId", + "UserName", + "Engine" ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-memorydb", - "taggable": true, - "typeName": "AWS::MemoryDB::User", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticache", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElastiCache::User", "writeOnlyProperties": [ - "/properties/AuthenticationMode", - "/properties/AccessString" + "/properties/Passwords", + "/properties/NoPasswordRequired", + "/properties/AccessString", + "/properties/AuthenticationMode" ] } diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-emr-cluster.json new file mode 100644 index 0000000000..7ce37fccb6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-emr-cluster.json @@ -0,0 +1,858 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Steps", + "/properties/EbsRootVolumeSize", + "/properties/SecurityConfiguration", + "/properties/ScaleDownBehavior", + "/properties/Configurations", + "/properties/ReleaseLabel", + "/properties/BootstrapActions", + "/properties/EbsRootVolumeIops", + "/properties/KerberosAttributes", + "/properties/ServiceRole", + "/properties/LogEncryptionKmsKeyId", + "/properties/Name", + "/properties/EbsRootVolumeThroughput", + "/properties/JobFlowRole", + "/properties/AdditionalInfo", + "/properties/LogUri", + "/properties/CustomAmiId", + "/properties/PlacementGroupConfigs", + "/properties/OSReleaseLabel", + "/properties/AutoScalingRole", + "/properties/Applications" + ], + "definitions": { + "Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ScalingRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/ScriptBootstrapActionConfig" + } + }, + "required": [ + "ScriptBootstrapAction", + "Name" + ], + "type": "object" + }, + "CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "EvaluationPeriods": { + "type": "integer" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "integer" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "ComparisonOperator", + "Period", + "Threshold" + ], + "type": "object" + }, + "ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "integer" + }, + "MaximumCoreCapacityUnits": { + "type": "integer" + }, + "MaximumOnDemandCapacityUnits": { + "type": "integer" + }, + "MinimumCapacityUnits": { + "type": "integer" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "UnitType", + "MaximumCapacityUnits", + "MinimumCapacityUnits" + ], + "type": "object" + }, + "Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "integer" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/EbsBlockDeviceConfig" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/KeyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/InstanceTypeConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchSpecifications": { + "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "integer" + }, + "TargetSpotCapacity": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/OnDemandProvisioningSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/SpotProvisioningSpecification" + } + }, + "type": "object" + }, + "InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceType": { + "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", + "type": "string" + }, + "WeightedCapacity": { + "type": "integer" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/ComputeLimits" + } + }, + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "PlacementGroupConfig": { + "additionalProperties": false, + "properties": { + "InstanceRole": { + "type": "string" + }, + "PlacementStrategy": { + "type": "string" + } + }, + "required": [ + "InstanceRole" + ], + "type": "object" + }, + "PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/ScalingTrigger" + } + }, + "required": [ + "Action", + "Trigger", + "Name" + ], + "type": "object" + }, + "ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BlockDurationMinutes": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "integer" + } + }, + "required": [ + "TimeoutDurationMinutes", + "TimeoutAction" + ], + "type": "object" + }, + "StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "integer" + }, + "SizeInGB": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EMR::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/Application" + }, + "type": "array", + "uniqueItems": true + }, + "AutoScalingRole": { + "type": "string" + }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AutoTerminationPolicy" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/BootstrapActionConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeIops": { + "type": "integer" + }, + "EbsRootVolumeSize": { + "type": "integer" + }, + "EbsRootVolumeThroughput": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Instances": { + "$ref": "#/definitions/JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/KerberosAttributes" + }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, + "LogUri": { + "type": "string" + }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/ManagedScalingPolicy" + }, + "MasterPublicDNS": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OSReleaseLabel": { + "type": "string" + }, + "PlacementGroupConfigs": { + "items": { + "$ref": "#/definitions/PlacementGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "StepConcurrencyLevel": { + "type": "integer" + }, + "Steps": { + "items": { + "$ref": "#/definitions/StepConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/MasterPublicDNS" + ], + "required": [ + "Instances", + "ServiceRole", + "JobFlowRole", + "Name" + ], + "typeName": "AWS::EMR::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-emr-studiosessionmapping.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-emr-studiosessionmapping.json deleted file mode 100644 index 793e843961..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-emr-studiosessionmapping.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StudioId", - "/properties/IdentityType", - "/properties/IdentityName" - ], - "definitions": { - "IamPolicyArn": { - "pattern": "^arn:aws(-(cn|us-gov))?:iam::([0-9]{12})?:policy\\/[^.]+$", - "type": "string" - } - }, - "description": "An example resource schema demonstrating some basic constructs and validation rules.", - "documentationUrl": "https://docs.aws.amazon.com/cli/latest/reference/emr/create-studio-session-mapping.html", - "handlers": { - "create": { - "permissions": [ - "elasticmapreduce:CreateStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:ListDirectoryAssociations", - "sso:GetProfile", - "sso:ListProfiles", - "sso:AssociateProfile" - ] - }, - "delete": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "elasticmapreduce:DeleteStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance", - "sso:ListDirectoryAssociations", - "sso:GetProfile", - "sso:ListProfiles", - "sso:DisassociateProfile" - ] - }, - "list": { - "permissions": [ - "elasticmapreduce:ListStudioSessionMappings" - ] - }, - "read": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance" - ] - }, - "update": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "elasticmapreduce:UpdateStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance" - ] - } - }, - "primaryIdentifier": [ - "/properties/StudioId", - "/properties/IdentityType", - "/properties/IdentityName" - ], - "properties": { - "IdentityName": { - "description": "The name of the user or group. For more information, see UserName and DisplayName in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId must be specified.", - "type": "string" - }, - "IdentityType": { - "description": "Specifies whether the identity to map to the Studio is a user or a group.", - "enum": [ - "USER", - "GROUP" - ], - "type": "string" - }, - "SessionPolicyArn": { - "$ref": "#/definitions/IamPolicyArn", - "description": "The Amazon Resource Name (ARN) for the session policy that will be applied to the user or group. Session policies refine Studio user permissions without the need to use multiple IAM user roles." - }, - "StudioId": { - "description": "The ID of the Amazon EMR Studio to which the user or group will be mapped.", - "maxLength": 256, - "minLength": 4, - "pattern": "^es-[0-9A-Z]+", - "type": "string" - } - }, - "required": [ - "StudioId", - "IdentityName", - "IdentityType", - "SessionPolicyArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::EMR::StudioSessionMapping" -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-eventschemas-discoverer.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-eventschemas-discoverer.json deleted file mode 100644 index 791d433995..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-eventschemas-discoverer.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SourceArn" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EventSchemas::Discoverer", - "primaryIdentifier": [ - "/properties/DiscovererId" - ], - "properties": { - "CrossAccount": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DiscovererArn": { - "type": "string" - }, - "DiscovererId": { - "type": "string" - }, - "SourceArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/DiscovererId", - "/properties/DiscovererArn" - ], - "required": [ - "SourceArn" - ], - "typeName": "AWS::EventSchemas::Discoverer" -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-imagebuilder-image.json new file mode 100644 index 0000000000..5582329923 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-imagebuilder-image.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ImageRecipeArn", + "/properties/ContainerRecipeArn", + "/properties/InfrastructureConfigurationArn", + "/properties/DistributionConfigurationArn", + "/properties/ImageTestsConfiguration", + "/properties/ImageScanningConfiguration", + "/properties/EnhancedImageMetadataEnabled", + "/properties/Tags" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Contains settings for Image Builder image resource and container image scans.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "The image tests configuration used when creating this image.", + "properties": { + "ImageTestsEnabled": { + "description": "ImageTestsEnabled", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "TimeoutMinutes", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::ImageBuilder::Image", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:GetImage", + "imagebuilder:CreateImage", + "imagebuilder:TagResource", + "inspector2:BatchGetAccountStatus" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "imagebuilder:GetImage", + "imagebuilder:DeleteImage", + "imagebuilder:UnTagResource", + "imagebuilder:CancelImageCreation" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListImages" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImage" + ] + } + }, + "oneOf": [ + { + "required": [ + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ImageId": { + "description": "The AMI ID of the EC2 AMI in current region.", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration used when creating this image." + }, + "ImageUri": { + "description": "URI for containers created in current Region with default ECR image tag", + "type": "string" + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", + "type": "string" + }, + "Name": { + "description": "The name of the image.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the image.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Name", + "/properties/ImageId", + "/properties/ImageUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Image" +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-imagebuilder-imagepipeline.json new file mode 100644 index 0000000000..5b70e0ff38 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-imagebuilder-imagepipeline.json @@ -0,0 +1,213 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "Image tests configuration.", + "properties": { + "ImageTestsEnabled": { + "description": "Defines if tests should be executed when building this image.", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "The maximum time in minutes that tests are permitted to run.", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "description": "The schedule of the image pipeline.", + "properties": { + "PipelineExecutionStartCondition": { + "description": "The condition configures when the pipeline should trigger a new image build.", + "enum": [ + "EXPRESSION_MATCH_ONLY", + "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + ], + "type": "string" + }, + "ScheduleExpression": { + "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:CreateImagePipeline", + "imagebuilder:GetWorkflow", + "inspector2:BatchGetAccountStatus" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:UnTagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:DeleteImagePipeline" + ] + }, + "list": { + "permissions": [ + "imagebuilder:ListImagePipelines" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImagePipeline" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "imagebuilder:GetImagePipeline", + "imagebuilder:UpdateImagePipeline", + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Name", + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "Name", + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image pipeline.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "Description": { + "description": "The description of the image pipeline.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration of the image pipeline." + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", + "type": "string" + }, + "Name": { + "description": "The name of the image pipeline.", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule", + "description": "The schedule of the image pipeline." + }, + "Status": { + "description": "The status of the image pipeline.", + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags of this image pipeline.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::ImagePipeline" +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbcluster.json new file mode 100644 index 0000000000..9a18b7d8e4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbcluster.json @@ -0,0 +1,545 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbcluster/serverless_exclusive" + ], + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "description": "Describes an AWS Identity and Access Management (IAM) role that is associated with a DB cluster.", + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. For the list of supported feature names, see DBEngineVersion in the Amazon RDS API Reference.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB cluster.", + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The connection endpoint for the DB cluster.", + "type": "string" + }, + "Port": { + "description": "The port number that will accept connections on this DB cluster.", + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS key identifier that is used to encrypt the secret.", + "type": "string" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the secret.", + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The reader endpoint for the DB cluster.", + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "description": "The ScalingConfiguration property type specifies the scaling configuration of an Aurora Serverless DB cluster.", + "properties": { + "AutoPause": { + "description": "A value that indicates whether to allow or disallow automatic pause for an Aurora DB cluster in serverless DB engine mode. A DB cluster can be paused only when it's idle (it has no connections).", + "type": "boolean" + }, + "MaxCapacity": { + "description": "The maximum capacity for an Aurora DB cluster in serverless DB engine mode.\nFor Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.\nFor Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.\nThe maximum capacity must be greater than or equal to the minimum capacity.", + "type": "integer" + }, + "MinCapacity": { + "description": "The minimum capacity for an Aurora DB cluster in serverless DB engine mode.\nFor Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.\nFor Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.\nThe minimum capacity must be less than or equal to the maximum capacity.", + "type": "integer" + }, + "SecondsBeforeTimeout": { + "description": "The amount of time, in seconds, that Aurora Serverless v1 tries to find a scaling point to perform seamless scaling before enforcing the timeout action.\nThe default is 300.", + "type": "integer" + }, + "SecondsUntilAutoPause": { + "description": "The time, in seconds, before an Aurora DB cluster in serverless mode is paused.", + "type": "integer" + }, + "TimeoutAction": { + "description": "The action to take when the timeout is reached, either ForceApplyCapacityChange or RollbackCapacityChange.\nForceApplyCapacityChange sets the capacity to the specified value as soon as possible.\nRollbackCapacityChange, the default, ignores the capacity change if a scaling point isn't found in the timeout period.\n\nFor more information, see Autoscaling for Aurora Serverless v1 in the Amazon Aurora User Guide.", + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "description": "Contains the scaling configuration of an Aurora Serverless v2 DB cluster.", + "properties": { + "MaxCapacity": { + "description": "The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 40, 40.5, 41, and so on. The largest value that you can use is 128.", + "maximum": 128, + "minimum": 0.5, + "type": "number" + }, + "MinCapacity": { + "description": "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5.", + "maximum": 128, + "minimum": 0.5, + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SnapshotIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false + } + }, + "SourceDBClusterIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "description": "The AWS::RDS::DBCluster resource creates an Amazon Aurora DB cluster.", + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeEvents", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "description": "The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.", + "type": "integer" + }, + "AssociatedRoles": { + "description": "Provides a list of the AWS Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other AWS services on your behalf.", + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "description": "A value that indicates whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.", + "type": "boolean" + }, + "AvailabilityZones": { + "awsType": "AvailabilityZones", + "description": "A list of Availability Zones (AZs) where instances in the DB cluster can be created. For information on AWS Regions and Availability Zones, see Choosing the Regions and Availability Zones in the Amazon Aurora User Guide.", + "items": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "default": 0, + "description": "The target backtrack window, in seconds. To disable backtracking, set this value to 0.", + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "description": "The number of days for which automated backups are retained.", + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them.", + "type": "boolean" + }, + "DBClusterArn": { + "description": "The Amazon Resource Name (ARN) for the DB cluster.", + "type": "string" + }, + "DBClusterIdentifier": { + "description": "The DB cluster identifier. This parameter is stored as a lowercase string.", + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "description": "The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6g.xlarge.", + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "description": "The name of the DB cluster parameter group to associate with this DB cluster.", + "type": "string" + }, + "DBClusterResourceId": { + "description": "The AWS Region-unique, immutable identifier for the DB cluster.", + "type": "string" + }, + "DBInstanceParameterGroupName": { + "description": "The name of the DB parameter group to apply to all instances of the DB cluster.", + "type": "string" + }, + "DBSubnetGroupName": { + "description": "A DB subnet group that you want to associate with this DB cluster.", + "type": "string" + }, + "DBSystemId": { + "description": "Reserved for future use.", + "type": "string" + }, + "DatabaseName": { + "description": "The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see Naming Constraints in the Amazon RDS User Guide.", + "type": "string" + }, + "DeletionProtection": { + "description": "A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.", + "type": "boolean" + }, + "Domain": { + "description": "The Active Directory directory ID to create the DB cluster in.", + "type": "string" + }, + "DomainIAMRoleName": { + "description": "Specify the name of the IAM role to be used when making API calls to the Directory Service.", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "description": "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "description": "Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database.", + "type": "boolean" + }, + "EnableHttpEndpoint": { + "description": "A value that indicates whether to enable the HTTP endpoint for an Aurora Serverless DB cluster. By default, the HTTP endpoint is disabled.", + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "description": "The name of the database engine to be used for this DB cluster. Valid Values: aurora (for MySQL 5.6-compatible Aurora), aurora-mysql (for MySQL 5.7-compatible Aurora), and aurora-postgresql", + "type": "string" + }, + "EngineMode": { + "description": "The DB engine mode of the DB cluster, either provisioned, serverless, parallelquery, global, or multimaster.", + "type": "string" + }, + "EngineVersion": { + "description": "The version number of the database engine to use.", + "type": "string" + }, + "GlobalClusterIdentifier": { + "description": "If you are configuring an Aurora global database cluster and want your Aurora DB cluster to be a secondary member in the global database cluster, specify the global cluster ID of the global database cluster. To define the primary database cluster of the global cluster, use the AWS::RDS::GlobalCluster resource.\n\nIf you aren't configuring a global database cluster, don't specify this property.", + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "description": "The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.", + "type": "integer" + }, + "KmsKeyId": { + "description": "The Amazon Resource Name (ARN) of the AWS Key Management Service master key that is used to encrypt the database instances in the DB cluster, such as arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. If you enable the StorageEncrypted property but don't specify this property, the default master key is used. If you specify this property, you must set the StorageEncrypted property to true.", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "A value that indicates whether to manage the master user password with AWS Secrets Manager.", + "type": "boolean" + }, + "MasterUserPassword": { + "description": "The master password for the DB instance.", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret", + "description": "Contains the secret managed by RDS in AWS Secrets Manager for the master user password." + }, + "MasterUsername": { + "description": "The name of the master user for the DB cluster. You must specify MasterUsername, unless you specify SnapshotIdentifier. In that case, don't specify MasterUsername.", + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify 0. The default is 0.", + "type": "integer" + }, + "MonitoringRoleArn": { + "description": "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.", + "type": "string" + }, + "NetworkType": { + "description": "The network type of the DB cluster.", + "type": "string" + }, + "PerformanceInsightsEnabled": { + "description": "A value that indicates whether to turn on Performance Insights for the DB cluster.", + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "description": "The Amazon Web Services KMS key identifier for encryption of Performance Insights data.", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "description": "The amount of time, in days, to retain Performance Insights data.", + "type": "integer" + }, + "Port": { + "description": "The port number on which the instances in the DB cluster accept connections. Default: 3306 if engine is set as aurora or 5432 if set to aurora-postgresql.", + "type": "integer" + }, + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter. The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "description": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.", + "type": "string" + }, + "PubliclyAccessible": { + "description": "A value that indicates whether the DB cluster is publicly accessible.", + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "description": "The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a Read Replica.", + "type": "string" + }, + "RestoreToTime": { + "description": "The date and time to restore the DB cluster to. Value must be a time in Universal Coordinated Time (UTC) format. An example: 2015-03-07T23:45:00Z", + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "description": "The type of restore to be performed. You can specify one of the following values:\nfull-copy - The new DB cluster is restored as a full copy of the source DB cluster.\ncopy-on-write - The new DB cluster is restored as a clone of the source DB cluster.", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration", + "description": "The ScalingConfiguration property type specifies the scaling configuration of an Aurora Serverless DB cluster." + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration", + "description": "Contains the scaling configuration of an Aurora Serverless v2 DB cluster." + }, + "SnapshotIdentifier": { + "description": "The identifier for the DB snapshot or DB cluster snapshot to restore from.\nYou can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot. However, you can use only the ARN to specify a DB snapshot.\nAfter you restore a DB cluster with a SnapshotIdentifier property, you must specify the same SnapshotIdentifier property for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed. However, if you don't specify the SnapshotIdentifier property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, the DB cluster is restored from the specified SnapshotIdentifier property, and the original DB cluster is deleted.", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "description": "The identifier of the source DB cluster from which to restore.", + "type": "string" + }, + "SourceRegion": { + "description": "The AWS Region which contains the source DB cluster when replicating a DB cluster. For example, us-east-1.", + "type": "string" + }, + "StorageEncrypted": { + "description": "Indicates whether the DB instance is encrypted.\nIf you specify the DBClusterIdentifier, SnapshotIdentifier, or SourceDBInstanceIdentifier property, don't specify this property. The value is inherited from the cluster, snapshot, or source DB instance.", + "type": "boolean" + }, + "StorageType": { + "description": "Specifies the storage type to be associated with the DB cluster.", + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "description": "A value that indicates whether to restore the DB cluster to the latest restorable backup time. By default, the DB cluster is not restored to the latest restorable backup time.", + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "description": "A list of EC2 VPC security groups to associate with this DB cluster.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : false", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "typeName": "AWS::RDS::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/MasterUserPassword", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbinstance.json new file mode 100644 index 0000000000..4c2f423ae2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbinstance.json @@ -0,0 +1,697 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbinstance/aurora_exclusive" + ], + "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": { + "description": "The CA identifier of the CA certificate used for the DB instance's server certificate.", + "type": "string" + }, + "ValidTill": { + "description": "The expiration date of the DB instance\u2019s server certificate.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "DBInstanceRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. IAM roles that are associated with a DB instance grant permission for the DB instance to access other AWS services on your behalf.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB instance.", + "type": "string" + } + }, + "required": [ + "FeatureName", + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "Specifies the DNS address of the DB instance.", + "type": "string" + }, + "HostedZoneId": { + "description": "Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.", + "type": "string" + }, + "Port": { + "description": "Specifies the port that the database engine is listening on.", + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS key identifier that is used to encrypt the secret.", + "type": "string" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the secret.", + "type": "string" + } + }, + "type": "object" + }, + "ProcessorFeature": { + "additionalProperties": false, + "properties": { + "Name": { + "description": "The name of the processor feature. Valid names are coreCount and threadsPerCore.", + "enum": [ + "coreCount", + "threadsPerCore" + ], + "type": "string" + }, + "Value": { + "description": "The value of a processor feature name.", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SourceDBInstanceIdentifier": { + "properties": { + "CharacterSetName": false, + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "deprecatedProperties": [ + "/properties/TdeCredentialArn", + "/properties/TdeCredentialPassword" + ], + "description": "The AWS::RDS::DBInstance resource creates an Amazon RDS DB instance.", + "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: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": { + "description": "The amount of storage (in gigabytes) to be initially allocated for the database instance.", + "pattern": "^[0-9]*$", + "type": "string" + }, + "AllowMajorVersionUpgrade": { + "description": "A value that indicates whether major version upgrades are allowed. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible.", + "type": "boolean" + }, + "AssociatedRoles": { + "description": "The AWS Identity and Access Management (IAM) roles associated with the DB instance.", + "items": { + "$ref": "#/definitions/DBInstanceRole" + }, + "type": "array" + }, + "AutoMinorVersionUpgrade": { + "description": "A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are applied automatically.", + "type": "boolean" + }, + "AutomaticBackupReplicationRegion": { + "description": "Enables replication of automated backups to a different Amazon Web Services Region.", + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "description": "The Availability Zone (AZ) where the database will be created. For information on AWS Regions and Availability Zones.", + "type": "string" + }, + "BackupRetentionPeriod": { + "default": 1, + "description": "The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.", + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CACertificateIdentifier": { + "description": "The identifier of the CA certificate for this DB instance.", + "type": "string" + }, + "CertificateDetails": { + "$ref": "#/definitions/CertificateDetails", + "description": "Returns the details of the DB instance's server certificate." + }, + "CertificateRotationRestart": { + "description": "A value that indicates whether the DB instance is restarted when you rotate your SSL/TLS certificate.\nBy default, the DB instance is restarted when you rotate your SSL/TLS certificate. The certificate is not updated until the DB instance is restarted.\nIf you are using SSL/TLS to connect to the DB instance, follow the appropriate instructions for your DB engine to rotate your SSL/TLS certificate\nThis setting doesn't apply to RDS Custom.", + "type": "boolean" + }, + "CharacterSetName": { + "description": "For supported engines, indicates that the DB instance should be associated with the specified character set.", + "type": "string" + }, + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied.", + "type": "boolean" + }, + "CustomIAMInstanceProfile": { + "description": "The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The instance profile must meet the following requirements:\n * The profile must exist in your account.\n * The profile must have an IAM role that Amazon EC2 has permissions to assume.\n * The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom .\nFor the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide .\n\nThis setting is required for RDS Custom.", + "type": "string" + }, + "DBClusterIdentifier": { + "description": "The identifier of the DB cluster that the instance will belong to.", + "type": "string" + }, + "DBClusterSnapshotIdentifier": { + "description": "The identifier for the RDS for MySQL Multi-AZ DB cluster snapshot to restore from. For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide .\n\nConstraints:\n * Must match the identifier of an existing Multi-AZ DB cluster snapshot.\n * Can't be specified when DBSnapshotIdentifier is specified.\n * Must be specified when DBSnapshotIdentifier isn't specified.\n * If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the DBClusterSnapshotIdentifier must be the ARN of the shared snapshot.\n * Can't be the identifier of an Aurora DB cluster snapshot.\n * Can't be the identifier of an RDS for PostgreSQL Multi-AZ DB cluster snapshot.", + "type": "string" + }, + "DBInstanceArn": { + "description": "The Amazon Resource Name (ARN) for the DB instance.", + "type": "string" + }, + "DBInstanceClass": { + "cfnRegionSchema": "aws_rds_dbinstance/dbinstanceclass_enum", + "description": "The compute and memory capacity of the DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines.", + "type": "string" + }, + "DBInstanceIdentifier": { + "description": "A name for the DB instance. If you specify a name, AWS CloudFormation converts it to lowercase. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the DB instance.", + "maxLength": 63, + "minLength": 1, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBName": { + "description": "The meaning of this parameter differs according to the database engine you use.", + "type": "string" + }, + "DBParameterGroupName": { + "description": "The name of an existing DB parameter group or a reference to an AWS::RDS::DBParameterGroup resource created in the template.", + "type": "string" + }, + "DBSecurityGroups": { + "description": "A list of the DB security groups to assign to the DB instance. The list can include both the name of existing DB security groups or references to AWS::RDS::DBSecurityGroup resources created in the template.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "DBSnapshotIdentifier": { + "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.", + "type": "string" + }, + "DBSubnetGroupName": { + "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC.", + "type": "string" + }, + "DBSystemId": { + "description": "The Oracle system ID (Oracle SID) for a container database (CDB). The Oracle SID is also the name of the CDB. This setting is valid for RDS Custom only.", + "type": "string" + }, + "DbiResourceId": { + "description": "The AWS Region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB instance is accessed.", + "type": "string" + }, + "DedicatedLogVolume": { + "description": "Indicates whether the DB instance has a dedicated log volume (DLV) enabled.", + "type": "boolean" + }, + "DeleteAutomatedBackups": { + "description": "A value that indicates whether to remove automated backups immediately after the DB instance is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB instance is deleted.", + "type": "boolean" + }, + "DeletionProtection": { + "description": "A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.", + "type": "boolean" + }, + "Domain": { + "description": "The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain.", + "type": "string" + }, + "DomainAuthSecretArn": { + "description": "The ARN for the Secrets Manager secret with the credentials for the user joining the domain.", + "type": "string" + }, + "DomainDnsIps": { + "description": "The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers.", + "items": { + "type": "string" + }, + "type": "array" + }, + "DomainFqdn": { + "description": "The fully qualified domain name (FQDN) of an Active Directory domain.", + "type": "string" + }, + "DomainIAMRoleName": { + "description": "Specify the name of the IAM role to be used when making API calls to the Directory Service.", + "type": "string" + }, + "DomainOu": { + "description": "The Active Directory organizational unit for your DB instance to join.", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "description": "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used.", + "items": { + "type": "string" + }, + "type": "array" + }, + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.", + "type": "boolean" + }, + "EnablePerformanceInsights": { + "description": "A value that indicates whether to enable Performance Insights for the DB instance.", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint", + "description": "Specifies the connection endpoint." + }, + "Engine": { + "description": "The name of the database engine that you want to use for this DB instance.", + "type": "string" + }, + "EngineVersion": { + "description": "The version number of the database engine to use.", + "type": "string" + }, + "Iops": { + "description": "The number of I/O operations per second (IOPS) that the database provisions.", + "type": "integer" + }, + "KmsKeyId": { + "description": "The ARN of the AWS Key Management Service (AWS KMS) master key that's used to encrypt the DB instance.", + "type": "string" + }, + "LicenseModel": { + "description": "License model information for this DB instance.", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "A value that indicates whether to manage the master user password with AWS Secrets Manager.", + "type": "boolean" + }, + "MasterUserPassword": { + "description": "The password for the master user.", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret", + "description": "Contains the secret managed by RDS in AWS Secrets Manager for the master user password." + }, + "MasterUsername": { + "description": "The master user name for the DB instance.", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", + "type": "string" + }, + "MaxAllocatedStorage": { + "description": "The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.", + "type": "integer" + }, + "MonitoringInterval": { + "default": 0, + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0.", + "type": "integer" + }, + "MonitoringRoleArn": { + "description": "The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs.", + "type": "string" + }, + "MultiAZ": { + "description": "Specifies whether the database instance is a multiple Availability Zone deployment.", + "type": "boolean" + }, + "NcharCharacterSetName": { + "description": "The name of the NCHAR character set for the Oracle DB instance. This parameter doesn't apply to RDS Custom.", + "type": "string" + }, + "NetworkType": { + "description": "The network type of the DB cluster.", + "type": "string" + }, + "OptionGroupName": { + "description": "Indicates that the DB instance should be associated with the specified option group.", + "type": "string" + }, + "PerformanceInsightsKMSKeyId": { + "description": "The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "description": "The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).", + "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": { + "description": "The port number on which the database accepts connections.", + "pattern": "^\\d*$", + "type": "string" + }, + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter.", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "description": "he weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).", + "type": "string" + }, + "ProcessorFeatures": { + "description": "The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.", + "items": { + "$ref": "#/definitions/ProcessorFeature" + }, + "type": "array" + }, + "PromotionTier": { + "default": 1, + "description": "A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance.", + "maximum": 15, + "minimum": 0, + "type": "integer" + }, + "PubliclyAccessible": { + "description": "Indicates whether the DB instance is an internet-facing instance. If you specify true, AWS CloudFormation creates an instance with a publicly resolvable DNS name, which resolves to a public IP address. If you specify false, AWS CloudFormation creates an internal instance with a DNS name that resolves to a private IP address.", + "type": "boolean" + }, + "ReplicaMode": { + "description": "The open mode of an Oracle read replica. The default is open-read-only.", + "type": "string" + }, + "RestoreTime": { + "description": "The date and time to restore from.", + "format": "date-time", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "description": "The identifier of the Multi-AZ DB cluster that will act as the source for the read replica. Each DB cluster can have up to 15 read replicas.", + "type": "string" + }, + "SourceDBInstanceAutomatedBackupsArn": { + "description": "The Amazon Resource Name (ARN) of the replicated automated backups from which to restore.", + "type": "string" + }, + "SourceDBInstanceIdentifier": { + "description": "If you want to create a Read Replica DB instance, specify the ID of the source DB instance. Each DB instance can have a limited number of Read Replicas.", + "type": "string" + }, + "SourceDbiResourceId": { + "description": "The resource ID of the source DB instance from which to restore.", + "type": "string" + }, + "SourceRegion": { + "description": "The ID of the region that contains the source DB instance for the Read Replica.", + "type": "string" + }, + "StorageEncrypted": { + "description": "A value that indicates whether the DB instance is encrypted. By default, it isn't encrypted.", + "type": "boolean" + }, + "StorageThroughput": { + "description": "Specifies the storage throughput for the DB instance.", + "type": "integer" + }, + "StorageType": { + "description": "Specifies the storage type to be associated with the DB instance.", + "type": "string" + }, + "Tags": { + "description": "Tags to assign to the DB instance.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TdeCredentialArn": { + "description": "The ARN from the key store with which to associate the instance for TDE encryption.", + "type": "string" + }, + "TdeCredentialPassword": { + "description": "The password for the given ARN from the key store in order to access the device.", + "type": "string" + }, + "Timezone": { + "description": "The time zone of the DB instance. The time zone parameter is currently supported only by Microsoft SQL Server.", + "type": "string" + }, + "UseDefaultProcessorFeatures": { + "description": "A value that indicates whether the DB instance class of the DB instance uses its default processor features.", + "type": "boolean" + }, + "UseLatestRestorableTime": { + "description": "A value that indicates whether the DB instance is restored from the latest backup time. By default, the DB instance isn't restored from the latest backup time.", + "type": "boolean" + }, + "VPCSecurityGroups": { + "description": "A list of the VPC security group IDs to assign to the DB instance. The list can include both the physical IDs of existing VPC security groups and references to AWS::EC2::SecurityGroup resources created in the template.", + "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/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/af_south_1/aws-route53resolver-resolverconfig.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-route53resolver-resolverconfig.json deleted file mode 100644 index 33f4996fbd..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-route53resolver-resolverconfig.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ResourceId", - "/properties/AutodefinedReverseFlag" - ], - "description": "Resource schema for AWS::Route53Resolver::ResolverConfig.", - "handlers": { - "create": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "delete": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "list": { - "permissions": [ - "route53resolver:ListResolverConfigs" - ] - }, - "read": { - "permissions": [ - "route53resolver:GetResolverConfig" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AutodefinedReverse": { - "description": "ResolverAutodefinedReverseStatus, possible values are ENABLING, ENABLED, DISABLING AND DISABLED.", - "enum": [ - "ENABLING", - "ENABLED", - "DISABLING", - "DISABLED" - ], - "type": "string" - }, - "AutodefinedReverseFlag": { - "description": "Represents the desired status of AutodefinedReverse. The only supported value on creation is DISABLE. Deletion of this resource will return AutodefinedReverse to its default value (ENABLED).", - "enum": [ - "DISABLE" - ], - "type": "string" - }, - "Id": { - "description": "Id", - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "OwnerId": { - "description": "AccountId", - "maxLength": 32, - "minLength": 12, - "type": "string" - }, - "ResourceId": { - "description": "ResourceId", - "maxLength": 64, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/OwnerId", - "/properties/Id", - "/properties/AutodefinedReverse" - ], - "required": [ - "ResourceId", - "AutodefinedReverseFlag" - ], - "taggable": false, - "typeName": "AWS::Route53Resolver::ResolverConfig" -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-app.json similarity index 97% rename from src/cfnlint/data/schemas/providers/us_east_2/aws-sagemaker-app.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-app.json index 9dd1feabc4..da6e3f4330 100644 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-sagemaker-app.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-app.json @@ -74,10 +74,7 @@ "ml.g5.48xlarge", "ml.p4d.24xlarge", "ml.p4de.24xlarge", - "ml.geospatial.interactive", - "ml.trn1.2xlarge", - "ml.trn1.32xlarge", - "ml.trn1n.32xlarge" + "ml.geospatial.interactive" ], "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-domain.json similarity index 73% rename from src/cfnlint/data/schemas/providers/us_east_2/aws-sagemaker-domain.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-domain.json index 77a0b04bb0..1948e2768f 100644 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-sagemaker-domain.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-domain.json @@ -1,69 +1,16 @@ { "additionalProperties": false, "createOnlyProperties": [ + "/properties/AppNetworkAccessType", "/properties/AuthMode", "/properties/DomainName", "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", "/properties/KmsKeyId", + "/properties/SubnetIds", "/properties/VpcId", "/properties/Tags" ], "definitions": { - "CodeEditorAppSettings": { - "additionalProperties": false, - "description": "The CodeEditor app settings.", - "properties": { - "CustomImages": { - "description": "A list of custom images for use for CodeEditor apps.", - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec", - "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app." - }, - "LifecycleConfigArns": { - "description": "A list of LifecycleConfigArns available for use with CodeEditor apps.", - "items": { - "$ref": "#/definitions/StudioLifecycleConfigArn" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "CodeRepository": { - "additionalProperties": false, - "properties": { - "RepositoryUrl": { - "description": "A CodeRepository (valid URL) to be used within Jupyter's Git extension.", - "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, "description": "A custom SageMaker image.", @@ -92,45 +39,6 @@ ], "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, - "description": "Properties related to the Amazon Elastic Block Store volume. Must be provided if storage type is Amazon EBS and must not be provided if storage type is not Amazon EBS", - "properties": { - "DefaultEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb", - "description": "Default size of the Amazon EBS volume in Gb" - }, - "MaximumEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb", - "description": "Maximum size of the Amazon EBS volume in Gb. Must be greater than or equal to the DefaultEbsVolumeSizeInGb." - } - }, - "required": [ - "DefaultEbsVolumeSizeInGb", - "MaximumEbsVolumeSizeInGb" - ], - "type": "object" - }, "DefaultSpaceSettings": { "additionalProperties": false, "description": "A collection of settings that apply to spaces of Amazon SageMaker Studio. These settings are specified when the Create/Update Domain API is called.", @@ -169,16 +77,6 @@ ], "type": "object" }, - "DefaultSpaceStorageSettings": { - "additionalProperties": false, - "description": "Default storage settings for a space.", - "properties": { - "DefaultEbsStorageSettings": { - "$ref": "#/definitions/DefaultEbsStorageSettings" - } - }, - "type": "object" - }, "DomainSettings": { "additionalProperties": false, "description": "A collection of Domain settings.", @@ -202,68 +100,6 @@ }, "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, - "description": "The JupyterLab app settings.", - "properties": { - "CodeRepositories": { - "description": "A list of CodeRepositories available for use with JupyterLab apps.", - "items": { - "$ref": "#/definitions/CodeRepository" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "CustomImages": { - "description": "A list of custom images for use for JupyterLab apps.", - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec", - "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterLab app." - }, - "LifecycleConfigArns": { - "description": "A list of LifecycleConfigArns available for use with JupyterLab apps.", - "items": { - "$ref": "#/definitions/StudioLifecycleConfigArn" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, "JupyterServerAppSettings": { "additionalProperties": false, "description": "The JupyterServer app settings.", @@ -435,10 +271,7 @@ "ml.g5.48xlarge", "ml.p4d.24xlarge", "ml.p4de.24xlarge", - "ml.geospatial.interactive", - "ml.trn1.2xlarge", - "ml.trn1.32xlarge", - "ml.trn1n.32xlarge" + "ml.geospatial.interactive" ], "type": "string" }, @@ -490,17 +323,6 @@ }, "type": "object" }, - "SpaceEbsVolumeSizeInGb": { - "maximum": 16384, - "minimum": 5, - "type": "integer" - }, - "StudioLifecycleConfigArn": { - "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", - "type": "string" - }, "Tag": { "additionalProperties": false, "properties": { @@ -525,26 +347,6 @@ "additionalProperties": false, "description": "A collection of settings that apply to users of Amazon SageMaker Studio. These settings are specified when the CreateUserProfile API is called, and as DefaultUserSettings when the CreateDomain API is called.", "properties": { - "CodeEditorAppSettings": { - "$ref": "#/definitions/CodeEditorAppSettings" - }, - "CustomFileSystemConfigs": { - "items": { - "$ref": "#/definitions/CustomFileSystemConfig" - }, - "maxItems": 2, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "CustomPosixUserConfig": { - "$ref": "#/definitions/CustomPosixUserConfig" - }, - "DefaultLandingUri": { - "description": "Defines which Amazon SageMaker application users are directed to by default.", - "maxLength": 1023, - "type": "string" - }, "ExecutionRole": { "description": "The execution role for the user.", "maxLength": 2048, @@ -552,9 +354,6 @@ "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", "type": "string" }, - "JupyterLabAppSettings": { - "$ref": "#/definitions/JupyterLabAppSettings" - }, "JupyterServerAppSettings": { "$ref": "#/definitions/JupyterServerAppSettings", "description": "The Jupyter server's app settings." @@ -585,17 +384,6 @@ "SharingSettings": { "$ref": "#/definitions/SharingSettings", "description": "The sharing settings." - }, - "SpaceStorageSettings": { - "$ref": "#/definitions/DefaultSpaceStorageSettings" - }, - "StudioWebPortal": { - "description": "Indicates whether the Studio experience is available to users. If not, users cannot access Studio.", - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" } }, "required": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-userprofile.json similarity index 64% rename from src/cfnlint/data/schemas/providers/us_east_2/aws-sagemaker-userprofile.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-userprofile.json index e64337e4fd..8d20becfab 100644 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-sagemaker-userprofile.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-userprofile.json @@ -10,61 +10,6 @@ "/properties/Tags" ], "definitions": { - "CodeEditorAppSettings": { - "additionalProperties": false, - "description": "The CodeEditor app settings.", - "properties": { - "CustomImages": { - "description": "A list of custom images for use for CodeEditor apps.", - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec", - "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app." - }, - "LifecycleConfigArns": { - "description": "A list of LifecycleConfigArns available for use with CodeEditor apps.", - "items": { - "$ref": "#/definitions/StudioLifecycleConfigArn" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "CodeRepository": { - "additionalProperties": false, - "properties": { - "RepositoryUrl": { - "description": "A CodeRepository (valid URL) to be used within Jupyter's Git extension.", - "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, "description": "A custom SageMaker image.", @@ -93,117 +38,6 @@ ], "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, - "description": "Properties related to the Amazon Elastic Block Store volume.", - "properties": { - "DefaultEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb", - "description": "Default size of the Amazon EBS volume in Gb" - }, - "MaximumEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb", - "description": "Maximum size of the Amazon EBS volume in Gb. Must be greater than or equal to the DefaultEbsVolumeSizeInGb." - } - }, - "required": [ - "DefaultEbsVolumeSizeInGb", - "MaximumEbsVolumeSizeInGb" - ], - "type": "object" - }, - "DefaultSpaceStorageSettings": { - "additionalProperties": false, - "description": "Default storage settings for a space.", - "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, - "description": "The JupyterLab app settings.", - "properties": { - "CodeRepositories": { - "description": "A list of CodeRepositories available for use with JupyterLab apps.", - "items": { - "$ref": "#/definitions/CodeRepository" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "CustomImages": { - "description": "A list of custom images available for use for JupyterLab apps", - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec", - "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterLab app." - }, - "LifecycleConfigArns": { - "description": "A list of LifecycleConfigArns available for use with JupyterLab apps.", - "items": { - "$ref": "#/definitions/StudioLifecycleConfigArn" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, "JupyterServerAppSettings": { "additionalProperties": false, "description": "The JupyterServer app settings.", @@ -323,10 +157,7 @@ "ml.g5.48xlarge", "ml.p4d.24xlarge", "ml.p4de.24xlarge", - "ml.geospatial.interactive", - "ml.trn1.2xlarge", - "ml.trn1.32xlarge", - "ml.trn1n.32xlarge" + "ml.geospatial.interactive" ], "type": "string" }, @@ -372,17 +203,6 @@ }, "type": "object" }, - "SpaceEbsVolumeSizeInGb": { - "maximum": 16384, - "minimum": 5, - "type": "integer" - }, - "StudioLifecycleConfigArn": { - "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", - "type": "string" - }, "Tag": { "additionalProperties": false, "properties": { @@ -407,26 +227,6 @@ "additionalProperties": false, "description": "A collection of settings that apply to users of Amazon SageMaker Studio. These settings are specified when the CreateUserProfile API is called, and as DefaultUserSettings when the CreateDomain API is called.", "properties": { - "CodeEditorAppSettings": { - "$ref": "#/definitions/CodeEditorAppSettings" - }, - "CustomFileSystemConfigs": { - "items": { - "$ref": "#/definitions/CustomFileSystemConfig" - }, - "maxItems": 2, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "CustomPosixUserConfig": { - "$ref": "#/definitions/CustomPosixUserConfig" - }, - "DefaultLandingUri": { - "description": "Defines which Amazon SageMaker application users are directed to by default.", - "maxLength": 1023, - "type": "string" - }, "ExecutionRole": { "description": "The user profile Amazon Resource Name (ARN).", "maxLength": 2048, @@ -434,9 +234,6 @@ "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", "type": "string" }, - "JupyterLabAppSettings": { - "$ref": "#/definitions/JupyterLabAppSettings" - }, "JupyterServerAppSettings": { "$ref": "#/definitions/JupyterServerAppSettings", "description": "The Jupyter server's app settings." @@ -463,17 +260,6 @@ "SharingSettings": { "$ref": "#/definitions/SharingSettings", "description": "The sharing settings." - }, - "SpaceStorageSettings": { - "$ref": "#/definitions/DefaultSpaceStorageSettings" - }, - "StudioWebPortal": { - "description": "Indicates whether the Studio experience is available to users. If not, users cannot access Studio.", - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" } }, "type": "object" diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-securityhub-hub.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-securityhub-hub.json new file mode 100644 index 0000000000..b0401a5225 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-securityhub-hub.json @@ -0,0 +1,28 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::SecurityHub::Hub", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoEnableControls": { + "type": "boolean" + }, + "ControlFindingGenerator": { + "type": "string" + }, + "EnableDefaultStandards": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SecurityHub::Hub" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-servicecatalogappregistry-application.json similarity index 78% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-servicecatalogappregistry-application.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-servicecatalogappregistry-application.json index 7aa8030e30..b04a7d7289 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-servicecatalogappregistry-application.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-servicecatalogappregistry-application.json @@ -58,25 +58,6 @@ "/properties/Id" ], "properties": { - "ApplicationName": { - "description": "The name of the application. ", - "maxLength": 256, - "minLength": 1, - "pattern": "\\w+", - "type": "string" - }, - "ApplicationTagKey": { - "description": "The Application Tag key of the application. ", - "maxLength": 128, - "pattern": "\\w+", - "type": "string" - }, - "ApplicationTagValue": { - "description": "The Application Tag Value of the application. ", - "maxLength": 256, - "pattern": "\\[a-zA-Z0-9_-:/]+", - "type": "string" - }, "Arn": { "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", "type": "string" @@ -103,10 +84,7 @@ }, "readOnlyProperties": [ "/properties/Id", - "/properties/Arn", - "/properties/ApplicationName", - "/properties/ApplicationTagKey", - "/properties/ApplicationTagValue" + "/properties/Arn" ], "required": [ "Name" 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 ee43df6a0f..e2c2bb80a7 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py @@ -5,6 +5,7 @@ "AWS::CDK::Metadata", "AWS::ApiGatewayV2::Integration", "AWS::ApiGatewayV2::ApiMapping", + "AWS::CE::AnomalySubscription", "AWS::Shield::DRTAccess", "AWS::SSO::Assignment", "AWS::Glue::Partition", @@ -204,6 +205,7 @@ "AWS::IoT::ThingType", "AWS::GuardDuty::Member", "AWS::CloudFormation::CustomResource", + "AWS::FIS::TargetAccountConfiguration", "AWS::KinesisAnalytics::ApplicationOutput", "AWS::WAFv2::RuleGroup", "AWS::SageMaker::ModelPackageGroup", @@ -334,6 +336,7 @@ "AWS::IoT::SoftwarePackageVersion", "AWS::EC2::NetworkInsightsAnalysis", "AWS::EC2::ClientVpnRoute", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::AppSync::ApiKey", "AWS::CloudFormation::TypeActivation", @@ -402,6 +405,7 @@ "AWS::ServiceCatalog::AcceptedPortfolioShare", "AWS::Route53Resolver::FirewallRuleGroupAssociation", "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", "AWS::EC2::Subnet", "AWS::CloudTrail::ResourcePolicy", "AWS::S3ObjectLambda::AccessPoint", @@ -680,6 +684,7 @@ "AWS::SageMaker::MonitoringSchedule", "AWS::IAM::OIDCProvider", "AWS::LakeFormation::Tag", + "AWS::CE::AnomalyMonitor", "AWS::ServiceCatalogAppRegistry::ResourceAssociation", "AWS::EC2::VPNGateway", "AWS::CloudFormation::Stack", @@ -747,6 +752,7 @@ cached: List[str] = [ "aws-apigatewayv2-integration.json", "aws-apigatewayv2-apimapping.json", + "aws-ce-anomalysubscription.json", "aws-shield-drtaccess.json", "aws-sso-assignment.json", "aws-glue-partition.json", @@ -775,7 +781,6 @@ "aws-iot-topicruledestination.json", "aws-amplify-branch.json", "aws-redshift-clustersubnetgroup.json", - "aws-rds-dbinstance.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-apigateway-model.json", "aws-apigatewayv2-integrationresponse.json", @@ -849,7 +854,6 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", - "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -866,6 +870,7 @@ "aws-appconfig-deploymentstrategy.json", "aws-glue-devendpoint.json", "aws-sagemaker-modelpackage.json", + "aws-eventschemas-discoverer.json", "aws-elasticache-usergroup.json", "aws-iot-thinggroup.json", "aws-imagebuilder-imagerecipe.json", @@ -922,7 +927,6 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", - "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-wafregional-xssmatchset.json", "aws-rds-dbproxytargetgroup.json", @@ -931,13 +935,13 @@ "aws-iot-thingtype.json", "aws-guardduty-member.json", "aws-cloudformation-customresource.json", + "aws-fis-targetaccountconfiguration.json", "aws-kinesisanalytics-applicationoutput.json", "aws-wafv2-rulegroup.json", "aws-sagemaker-modelpackagegroup.json", "aws-elasticache-parametergroup.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", - "aws-codedeploy-deploymentgroup.json", "aws-sagemaker-inferenceexperiment.json", "aws-cloudformation-stackset.json", "aws-ec2-route.json", @@ -971,6 +975,7 @@ "aws-fms-notificationchannel.json", "aws-msk-batchscramsecret.json", "aws-dms-certificate.json", + "aws-s3-bucket.json", "aws-guardduty-ipset.json", "aws-servicediscovery-httpnamespace.json", "aws-emr-securityconfiguration.json", @@ -1078,7 +1083,6 @@ "aws-codedeploy-deploymentconfig.json", "aws-networkmanager-globalnetwork.json", "aws-stepfunctions-statemachineversion.json", - "aws-servicecatalogappregistry-application.json", "aws-networkmanager-site.json", "aws-glue-database.json", "aws-neptune-dbcluster.json", @@ -1113,6 +1117,7 @@ "aws-route53resolver-resolverdnssecconfig.json", "aws-route53resolver-firewallrulegroupassociation.json", "aws-route53resolver-resolverqueryloggingconfig.json", + "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-subnet.json", "aws-cloudtrail-resourcepolicy.json", "aws-s3objectlambda-accesspoint.json", @@ -1156,10 +1161,8 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", - "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", - "aws-rds-dbcluster.json", "aws-servicecatalog-resourceupdateconstraint.json", "aws-transfer-agreement.json", "aws-chatbot-slackchannelconfiguration.json", @@ -1191,6 +1194,7 @@ "aws-sagemaker-workteam.json", "aws-lambda-layerversionpermission.json", "aws-secretsmanager-secret.json", + "aws-route53resolver-resolverconfig.json", "aws-elasticache-user.json", "aws-sagemaker-image.json", "aws-logs-subscriptionfilter.json", @@ -1241,7 +1245,6 @@ "aws-ec2-ipamresourcediscoveryassociation.json", "aws-servicecatalogappregistry-attributegroup.json", "aws-ec2-clientvpntargetnetworkassociation.json", - "aws-appsync-graphqlapi.json", "aws-ec2-egressonlyinternetgateway.json", "aws-config-conformancepack.json", "aws-ec2-vpccidrblock.json", @@ -1371,6 +1374,7 @@ "aws-sagemaker-monitoringschedule.json", "aws-iam-oidcprovider.json", "aws-lakeformation-tag.json", + "aws-ce-anomalymonitor.json", "aws-servicecatalogappregistry-resourceassociation.json", "aws-ec2-vpngateway.json", "aws-cloudformation-stack.json", @@ -1415,7 +1419,6 @@ "aws-chatbot-microsoftteamschannelconfiguration.json", "aws-rds-dbproxy.json", "aws-rds-dbparametergroup.json", - "aws-securityhub-hub.json", "aws-s3-accesspoint.json", "aws-s3outposts-bucketpolicy.json", "aws-batch-jobqueue.json", diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-appsync-graphqlapi.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-appsync-graphqlapi.json new file mode 100644 index 0000000000..077c3fd5af --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-appsync-graphqlapi.json @@ -0,0 +1,222 @@ +{ + "additionalProperties": false, + "definitions": { + "AdditionalAuthenticationProvider": { + "additionalProperties": false, + "properties": { + "AuthenticationType": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "UserPoolConfig": { + "$ref": "#/definitions/CognitoUserPoolConfig" + } + }, + "required": [ + "AuthenticationType" + ], + "type": "object" + }, + "CognitoUserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "LambdaAuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsRoleArn": { + "type": "string" + }, + "ExcludeVerboseContent": { + "type": "boolean" + }, + "FieldLogLevel": { + "type": "string" + } + }, + "type": "object" + }, + "OpenIDConnectConfig": { + "additionalProperties": false, + "properties": { + "AuthTTL": { + "type": "number" + }, + "ClientId": { + "type": "string" + }, + "IatTTL": { + "type": "number" + }, + "Issuer": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "UserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "DefaultAction": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AppSync::GraphQLApi", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalAuthenticationProviders": { + "items": { + "$ref": "#/definitions/AdditionalAuthenticationProvider" + }, + "type": "array", + "uniqueItems": false + }, + "ApiId": { + "type": "string" + }, + "ApiType": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "AuthenticationType": { + "enum": [ + "API_KEY", + "AWS_IAM", + "AMAZON_COGNITO_USER_POOLS", + "OPENID_CONNECT", + "AWS_LAMBDA" + ], + "type": "string" + }, + "GraphQLDns": { + "type": "string" + }, + "GraphQLEndpointArn": { + "type": "string" + }, + "GraphQLUrl": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "LogConfig": { + "$ref": "#/definitions/LogConfig" + }, + "MergedApiExecutionRoleArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "OwnerContact": { + "type": "string" + }, + "RealtimeDns": { + "type": "string" + }, + "RealtimeUrl": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UserPoolConfig": { + "$ref": "#/definitions/UserPoolConfig" + }, + "Visibility": { + "type": "string" + }, + "XrayEnabled": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/ApiId", + "/properties/GraphQLEndpointArn", + "/properties/Id", + "/properties/GraphQLDns", + "/properties/GraphQLUrl", + "/properties/RealtimeDns", + "/properties/RealtimeUrl", + "/properties/Arn" + ], + "required": [ + "Name", + "AuthenticationType" + ], + "typeName": "AWS::AppSync::GraphQLApi" +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-codedeploy-deploymentgroup.json new file mode 100644 index 0000000000..208990a115 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-codedeploy-deploymentgroup.json @@ -0,0 +1,523 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentGroupName", + "/properties/ApplicationName" + ], + "definitions": { + "Alarm": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AlarmConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/Alarm" + }, + "type": "array", + "uniqueItems": true + }, + "Enabled": { + "type": "boolean" + }, + "IgnorePollAlarmFailure": { + "type": "boolean" + } + }, + "type": "object" + }, + "AutoRollbackConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Events": { + "items": { + "enum": [ + "DEPLOYMENT_FAILURE", + "DEPLOYMENT_STOP_ON_ALARM", + "DEPLOYMENT_STOP_ON_REQUEST" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "BlueGreenDeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "DeploymentReadyOption": { + "$ref": "#/definitions/DeploymentReadyOption" + }, + "GreenFleetProvisioningOption": { + "$ref": "#/definitions/GreenFleetProvisioningOption" + }, + "TerminateBlueInstancesOnDeploymentSuccess": { + "$ref": "#/definitions/BlueInstanceTerminationOption" + } + }, + "type": "object" + }, + "BlueInstanceTerminationOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "TerminationWaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "Deployment": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "IgnoreApplicationStopFailures": { + "type": "boolean" + }, + "Revision": { + "$ref": "#/definitions/RevisionLocation" + } + }, + "required": [ + "Revision" + ], + "type": "object" + }, + "DeploymentReadyOption": { + "additionalProperties": false, + "properties": { + "ActionOnTimeout": { + "type": "string" + }, + "WaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentStyle": { + "additionalProperties": false, + "properties": { + "DeploymentOption": { + "enum": [ + "WITH_TRAFFIC_CONTROL", + "WITHOUT_TRAFFIC_CONTROL" + ], + "type": "string" + }, + "DeploymentType": { + "enum": [ + "IN_PLACE", + "BLUE_GREEN" + ], + "type": "string" + } + }, + "type": "object" + }, + "EC2TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "EC2TagSet": { + "additionalProperties": false, + "properties": { + "Ec2TagSetList": { + "items": { + "$ref": "#/definitions/EC2TagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EC2TagSetListObject": { + "additionalProperties": false, + "properties": { + "Ec2TagGroup": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ECSService": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + } + }, + "required": [ + "ServiceName", + "ClusterName" + ], + "type": "object" + }, + "ELBInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "GitHubLocation": { + "additionalProperties": false, + "properties": { + "CommitId": { + "type": "string" + }, + "Repository": { + "type": "string" + } + }, + "required": [ + "Repository", + "CommitId" + ], + "type": "object" + }, + "GreenFleetProvisioningOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "type": "object" + }, + "LoadBalancerInfo": { + "additionalProperties": false, + "properties": { + "ElbInfoList": { + "items": { + "$ref": "#/definitions/ELBInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupPairInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupPairInfo" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSet": { + "additionalProperties": false, + "properties": { + "OnPremisesTagSetList": { + "items": { + "$ref": "#/definitions/OnPremisesTagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSetListObject": { + "additionalProperties": false, + "properties": { + "OnPremisesTagGroup": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "RevisionLocation": { + "additionalProperties": false, + "properties": { + "GitHubLocation": { + "$ref": "#/definitions/GitHubLocation" + }, + "RevisionType": { + "type": "string" + }, + "S3Location": { + "$ref": "#/definitions/S3Location" + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "BundleType": { + "type": "string" + }, + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupPairInfo": { + "additionalProperties": false, + "properties": { + "ProdTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + }, + "TargetGroups": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TestTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + } + }, + "type": "object" + }, + "TrafficRoute": { + "additionalProperties": false, + "properties": { + "ListenerArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerEvents": { + "items": { + "enum": [ + "DeploymentStart", + "DeploymentSuccess", + "DeploymentFailure", + "DeploymentStop", + "DeploymentRollback", + "DeploymentReady", + "InstanceStart", + "InstanceSuccess", + "InstanceFailure", + "InstanceReady" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "TriggerName": { + "type": "string" + }, + "TriggerTargetArn": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AlarmConfiguration": { + "$ref": "#/definitions/AlarmConfiguration" + }, + "ApplicationName": { + "type": "string" + }, + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AutoRollbackConfiguration" + }, + "AutoScalingGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BlueGreenDeploymentConfiguration": { + "$ref": "#/definitions/BlueGreenDeploymentConfiguration" + }, + "Deployment": { + "$ref": "#/definitions/Deployment" + }, + "DeploymentConfigName": { + "type": "string" + }, + "DeploymentGroupName": { + "type": "string" + }, + "DeploymentStyle": { + "$ref": "#/definitions/DeploymentStyle" + }, + "ECSServices": { + "items": { + "$ref": "#/definitions/ECSService" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagFilters": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagSet": { + "$ref": "#/definitions/EC2TagSet" + }, + "Id": { + "type": "string" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/LoadBalancerInfo" + }, + "OnPremisesInstanceTagFilters": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "OnPremisesTagSet": { + "$ref": "#/definitions/OnPremisesTagSet" + }, + "OutdatedInstancesStrategy": { + "type": "string" + }, + "ServiceRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TerminationHookEnabled": { + "type": "boolean" + }, + "TriggerConfigurations": { + "items": { + "$ref": "#/definitions/TriggerConfig" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "ServiceRoleArn" + ], + "typeName": "AWS::CodeDeploy::DeploymentGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-emr-cluster.json new file mode 100644 index 0000000000..7ce37fccb6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-emr-cluster.json @@ -0,0 +1,858 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Steps", + "/properties/EbsRootVolumeSize", + "/properties/SecurityConfiguration", + "/properties/ScaleDownBehavior", + "/properties/Configurations", + "/properties/ReleaseLabel", + "/properties/BootstrapActions", + "/properties/EbsRootVolumeIops", + "/properties/KerberosAttributes", + "/properties/ServiceRole", + "/properties/LogEncryptionKmsKeyId", + "/properties/Name", + "/properties/EbsRootVolumeThroughput", + "/properties/JobFlowRole", + "/properties/AdditionalInfo", + "/properties/LogUri", + "/properties/CustomAmiId", + "/properties/PlacementGroupConfigs", + "/properties/OSReleaseLabel", + "/properties/AutoScalingRole", + "/properties/Applications" + ], + "definitions": { + "Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ScalingRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/ScriptBootstrapActionConfig" + } + }, + "required": [ + "ScriptBootstrapAction", + "Name" + ], + "type": "object" + }, + "CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "EvaluationPeriods": { + "type": "integer" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "integer" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "ComparisonOperator", + "Period", + "Threshold" + ], + "type": "object" + }, + "ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "integer" + }, + "MaximumCoreCapacityUnits": { + "type": "integer" + }, + "MaximumOnDemandCapacityUnits": { + "type": "integer" + }, + "MinimumCapacityUnits": { + "type": "integer" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "UnitType", + "MaximumCapacityUnits", + "MinimumCapacityUnits" + ], + "type": "object" + }, + "Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "integer" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/EbsBlockDeviceConfig" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/KeyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/InstanceTypeConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchSpecifications": { + "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "integer" + }, + "TargetSpotCapacity": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/OnDemandProvisioningSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/SpotProvisioningSpecification" + } + }, + "type": "object" + }, + "InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceType": { + "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", + "type": "string" + }, + "WeightedCapacity": { + "type": "integer" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/ComputeLimits" + } + }, + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "PlacementGroupConfig": { + "additionalProperties": false, + "properties": { + "InstanceRole": { + "type": "string" + }, + "PlacementStrategy": { + "type": "string" + } + }, + "required": [ + "InstanceRole" + ], + "type": "object" + }, + "PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/ScalingTrigger" + } + }, + "required": [ + "Action", + "Trigger", + "Name" + ], + "type": "object" + }, + "ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BlockDurationMinutes": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "integer" + } + }, + "required": [ + "TimeoutDurationMinutes", + "TimeoutAction" + ], + "type": "object" + }, + "StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "integer" + }, + "SizeInGB": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EMR::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/Application" + }, + "type": "array", + "uniqueItems": true + }, + "AutoScalingRole": { + "type": "string" + }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AutoTerminationPolicy" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/BootstrapActionConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeIops": { + "type": "integer" + }, + "EbsRootVolumeSize": { + "type": "integer" + }, + "EbsRootVolumeThroughput": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Instances": { + "$ref": "#/definitions/JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/KerberosAttributes" + }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, + "LogUri": { + "type": "string" + }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/ManagedScalingPolicy" + }, + "MasterPublicDNS": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OSReleaseLabel": { + "type": "string" + }, + "PlacementGroupConfigs": { + "items": { + "$ref": "#/definitions/PlacementGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "StepConcurrencyLevel": { + "type": "integer" + }, + "Steps": { + "items": { + "$ref": "#/definitions/StepConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/MasterPublicDNS" + ], + "required": [ + "Instances", + "ServiceRole", + "JobFlowRole", + "Name" + ], + "typeName": "AWS::EMR::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-eventschemas-discoverer.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-eventschemas-discoverer.json deleted file mode 100644 index 791d433995..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-eventschemas-discoverer.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SourceArn" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EventSchemas::Discoverer", - "primaryIdentifier": [ - "/properties/DiscovererId" - ], - "properties": { - "CrossAccount": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DiscovererArn": { - "type": "string" - }, - "DiscovererId": { - "type": "string" - }, - "SourceArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/DiscovererId", - "/properties/DiscovererArn" - ], - "required": [ - "SourceArn" - ], - "typeName": "AWS::EventSchemas::Discoverer" -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-imagebuilder-image.json new file mode 100644 index 0000000000..223d64e03e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-imagebuilder-image.json @@ -0,0 +1,263 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ImageRecipeArn", + "/properties/ContainerRecipeArn", + "/properties/InfrastructureConfigurationArn", + "/properties/Workflows", + "/properties/DistributionConfigurationArn", + "/properties/ImageTestsConfiguration", + "/properties/ImageScanningConfiguration", + "/properties/EnhancedImageMetadataEnabled", + "/properties/Tags" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Contains settings for Image Builder image resource and container image scans.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "The image tests configuration used when creating this image.", + "properties": { + "ImageTestsEnabled": { + "description": "ImageTestsEnabled", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "TimeoutMinutes", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "WorkflowConfiguration": { + "additionalProperties": false, + "description": "The workflow configuration of the image", + "properties": { + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "enum": [ + "CONTINUE", + "ABORT" + ], + "type": "string" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string" + }, + "Parameters": { + "description": "The parameters associated with the workflow", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "type": "array" + }, + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowParameter": { + "additionalProperties": false, + "description": "A parameter associated with the workflow", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowParameterValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", + "type": "string" + } + }, + "description": "Resource schema for AWS::ImageBuilder::Image", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:GetImage", + "imagebuilder:CreateImage", + "imagebuilder:TagResource", + "inspector2:BatchGetAccountStatus" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "imagebuilder:GetImage", + "imagebuilder:DeleteImage", + "imagebuilder:UnTagResource", + "imagebuilder:CancelImageCreation" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListImages" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImage" + ] + } + }, + "oneOf": [ + { + "required": [ + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string" + }, + "ImageId": { + "description": "The AMI ID of the EC2 AMI in current region.", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration used when creating this image." + }, + "ImageUri": { + "description": "URI for containers created in current Region with default ECR image tag", + "type": "string" + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", + "type": "string" + }, + "Name": { + "description": "The name of the image.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the image.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Name", + "/properties/ImageId", + "/properties/ImageUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Image" +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-imagebuilder-imagepipeline.json new file mode 100644 index 0000000000..3cf9b2a4a9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-imagebuilder-imagepipeline.json @@ -0,0 +1,277 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "Image tests configuration.", + "properties": { + "ImageTestsEnabled": { + "description": "Defines if tests should be executed when building this image.", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "The maximum time in minutes that tests are permitted to run.", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "description": "The schedule of the image pipeline.", + "properties": { + "PipelineExecutionStartCondition": { + "description": "The condition configures when the pipeline should trigger a new image build.", + "enum": [ + "EXPRESSION_MATCH_ONLY", + "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + ], + "type": "string" + }, + "ScheduleExpression": { + "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowConfiguration": { + "additionalProperties": false, + "description": "The workflow configuration of the image", + "properties": { + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "enum": [ + "CONTINUE", + "ABORT" + ], + "type": "string" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string" + }, + "Parameters": { + "description": "The parameters associated with the workflow", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "type": "array" + }, + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowParameter": { + "additionalProperties": false, + "description": "A parameter associated with the workflow", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowParameterValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", + "type": "string" + } + }, + "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:CreateImagePipeline", + "imagebuilder:GetWorkflow", + "inspector2:BatchGetAccountStatus" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:UnTagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:DeleteImagePipeline" + ] + }, + "list": { + "permissions": [ + "imagebuilder:ListImagePipelines" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImagePipeline" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "imagebuilder:GetImagePipeline", + "imagebuilder:UpdateImagePipeline", + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Name", + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "Name", + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image pipeline.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "Description": { + "description": "The description of the image pipeline.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration of the image pipeline." + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", + "type": "string" + }, + "Name": { + "description": "The name of the image pipeline.", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule", + "description": "The schedule of the image pipeline." + }, + "Status": { + "description": "The status of the image pipeline.", + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags of this image pipeline.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::ImagePipeline" +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-imagebuilder-workflow.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-imagebuilder-workflow.json new file mode 100644 index 0000000000..5c25c2361b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-imagebuilder-workflow.json @@ -0,0 +1,145 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Version", + "/properties/ChangeDescription", + "/properties/Description", + "/properties/Data", + "/properties/Uri", + "/properties/Type", + "/properties/KmsKeyId", + "/properties/Tags" + ], + "description": "Resource schema for AWS::ImageBuilder::Workflow", + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "kms:GenerateDataKey*", + "kms:Encrypt", + "kms:Decrypt", + "s3:GetObject", + "s3:HeadBucket", + "s3:GetBucketLocation", + "imagebuilder:TagResource", + "imagebuilder:GetWorkflow", + "imagebuilder:CreateWorkflow" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:GetWorkflow", + "imagebuilder:UnTagResource", + "imagebuilder:DeleteWorkflow" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListWorkflows" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Data" + ] + }, + { + "required": [ + "Uri" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the workflow.", + "type": "string" + }, + "ChangeDescription": { + "description": "The change description of the workflow.", + "type": "string" + }, + "Data": { + "description": "The data of the workflow.", + "maxLength": 16000, + "minLength": 1, + "type": "string" + }, + "Description": { + "description": "The description of the workflow.", + "type": "string" + }, + "KmsKeyId": { + "description": "The KMS key identifier used to encrypt the workflow.", + "type": "string" + }, + "Name": { + "description": "The name of the workflow.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the workflow.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "description": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.", + "enum": [ + "BUILD", + "TEST", + "DISTRIBUTION" + ], + "type": "string" + }, + "Uri": { + "description": "The uri of the workflow.", + "type": "string" + }, + "Version": { + "description": "The version of the workflow.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "Name", + "Type", + "Version" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Workflow", + "writeOnlyProperties": [ + "/properties/Data", + "/properties/Uri" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-rds-dbcluster.json new file mode 100644 index 0000000000..9a18b7d8e4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-rds-dbcluster.json @@ -0,0 +1,545 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbcluster/serverless_exclusive" + ], + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "description": "Describes an AWS Identity and Access Management (IAM) role that is associated with a DB cluster.", + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. For the list of supported feature names, see DBEngineVersion in the Amazon RDS API Reference.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB cluster.", + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The connection endpoint for the DB cluster.", + "type": "string" + }, + "Port": { + "description": "The port number that will accept connections on this DB cluster.", + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS key identifier that is used to encrypt the secret.", + "type": "string" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the secret.", + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The reader endpoint for the DB cluster.", + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "description": "The ScalingConfiguration property type specifies the scaling configuration of an Aurora Serverless DB cluster.", + "properties": { + "AutoPause": { + "description": "A value that indicates whether to allow or disallow automatic pause for an Aurora DB cluster in serverless DB engine mode. A DB cluster can be paused only when it's idle (it has no connections).", + "type": "boolean" + }, + "MaxCapacity": { + "description": "The maximum capacity for an Aurora DB cluster in serverless DB engine mode.\nFor Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.\nFor Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.\nThe maximum capacity must be greater than or equal to the minimum capacity.", + "type": "integer" + }, + "MinCapacity": { + "description": "The minimum capacity for an Aurora DB cluster in serverless DB engine mode.\nFor Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.\nFor Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.\nThe minimum capacity must be less than or equal to the maximum capacity.", + "type": "integer" + }, + "SecondsBeforeTimeout": { + "description": "The amount of time, in seconds, that Aurora Serverless v1 tries to find a scaling point to perform seamless scaling before enforcing the timeout action.\nThe default is 300.", + "type": "integer" + }, + "SecondsUntilAutoPause": { + "description": "The time, in seconds, before an Aurora DB cluster in serverless mode is paused.", + "type": "integer" + }, + "TimeoutAction": { + "description": "The action to take when the timeout is reached, either ForceApplyCapacityChange or RollbackCapacityChange.\nForceApplyCapacityChange sets the capacity to the specified value as soon as possible.\nRollbackCapacityChange, the default, ignores the capacity change if a scaling point isn't found in the timeout period.\n\nFor more information, see Autoscaling for Aurora Serverless v1 in the Amazon Aurora User Guide.", + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "description": "Contains the scaling configuration of an Aurora Serverless v2 DB cluster.", + "properties": { + "MaxCapacity": { + "description": "The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 40, 40.5, 41, and so on. The largest value that you can use is 128.", + "maximum": 128, + "minimum": 0.5, + "type": "number" + }, + "MinCapacity": { + "description": "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5.", + "maximum": 128, + "minimum": 0.5, + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SnapshotIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false + } + }, + "SourceDBClusterIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "description": "The AWS::RDS::DBCluster resource creates an Amazon Aurora DB cluster.", + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeEvents", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "description": "The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.", + "type": "integer" + }, + "AssociatedRoles": { + "description": "Provides a list of the AWS Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other AWS services on your behalf.", + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "description": "A value that indicates whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.", + "type": "boolean" + }, + "AvailabilityZones": { + "awsType": "AvailabilityZones", + "description": "A list of Availability Zones (AZs) where instances in the DB cluster can be created. For information on AWS Regions and Availability Zones, see Choosing the Regions and Availability Zones in the Amazon Aurora User Guide.", + "items": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "default": 0, + "description": "The target backtrack window, in seconds. To disable backtracking, set this value to 0.", + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "description": "The number of days for which automated backups are retained.", + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them.", + "type": "boolean" + }, + "DBClusterArn": { + "description": "The Amazon Resource Name (ARN) for the DB cluster.", + "type": "string" + }, + "DBClusterIdentifier": { + "description": "The DB cluster identifier. This parameter is stored as a lowercase string.", + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "description": "The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6g.xlarge.", + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "description": "The name of the DB cluster parameter group to associate with this DB cluster.", + "type": "string" + }, + "DBClusterResourceId": { + "description": "The AWS Region-unique, immutable identifier for the DB cluster.", + "type": "string" + }, + "DBInstanceParameterGroupName": { + "description": "The name of the DB parameter group to apply to all instances of the DB cluster.", + "type": "string" + }, + "DBSubnetGroupName": { + "description": "A DB subnet group that you want to associate with this DB cluster.", + "type": "string" + }, + "DBSystemId": { + "description": "Reserved for future use.", + "type": "string" + }, + "DatabaseName": { + "description": "The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see Naming Constraints in the Amazon RDS User Guide.", + "type": "string" + }, + "DeletionProtection": { + "description": "A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.", + "type": "boolean" + }, + "Domain": { + "description": "The Active Directory directory ID to create the DB cluster in.", + "type": "string" + }, + "DomainIAMRoleName": { + "description": "Specify the name of the IAM role to be used when making API calls to the Directory Service.", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "description": "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "description": "Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database.", + "type": "boolean" + }, + "EnableHttpEndpoint": { + "description": "A value that indicates whether to enable the HTTP endpoint for an Aurora Serverless DB cluster. By default, the HTTP endpoint is disabled.", + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "description": "The name of the database engine to be used for this DB cluster. Valid Values: aurora (for MySQL 5.6-compatible Aurora), aurora-mysql (for MySQL 5.7-compatible Aurora), and aurora-postgresql", + "type": "string" + }, + "EngineMode": { + "description": "The DB engine mode of the DB cluster, either provisioned, serverless, parallelquery, global, or multimaster.", + "type": "string" + }, + "EngineVersion": { + "description": "The version number of the database engine to use.", + "type": "string" + }, + "GlobalClusterIdentifier": { + "description": "If you are configuring an Aurora global database cluster and want your Aurora DB cluster to be a secondary member in the global database cluster, specify the global cluster ID of the global database cluster. To define the primary database cluster of the global cluster, use the AWS::RDS::GlobalCluster resource.\n\nIf you aren't configuring a global database cluster, don't specify this property.", + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "description": "The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.", + "type": "integer" + }, + "KmsKeyId": { + "description": "The Amazon Resource Name (ARN) of the AWS Key Management Service master key that is used to encrypt the database instances in the DB cluster, such as arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. If you enable the StorageEncrypted property but don't specify this property, the default master key is used. If you specify this property, you must set the StorageEncrypted property to true.", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "A value that indicates whether to manage the master user password with AWS Secrets Manager.", + "type": "boolean" + }, + "MasterUserPassword": { + "description": "The master password for the DB instance.", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret", + "description": "Contains the secret managed by RDS in AWS Secrets Manager for the master user password." + }, + "MasterUsername": { + "description": "The name of the master user for the DB cluster. You must specify MasterUsername, unless you specify SnapshotIdentifier. In that case, don't specify MasterUsername.", + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify 0. The default is 0.", + "type": "integer" + }, + "MonitoringRoleArn": { + "description": "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.", + "type": "string" + }, + "NetworkType": { + "description": "The network type of the DB cluster.", + "type": "string" + }, + "PerformanceInsightsEnabled": { + "description": "A value that indicates whether to turn on Performance Insights for the DB cluster.", + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "description": "The Amazon Web Services KMS key identifier for encryption of Performance Insights data.", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "description": "The amount of time, in days, to retain Performance Insights data.", + "type": "integer" + }, + "Port": { + "description": "The port number on which the instances in the DB cluster accept connections. Default: 3306 if engine is set as aurora or 5432 if set to aurora-postgresql.", + "type": "integer" + }, + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter. The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "description": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.", + "type": "string" + }, + "PubliclyAccessible": { + "description": "A value that indicates whether the DB cluster is publicly accessible.", + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "description": "The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a Read Replica.", + "type": "string" + }, + "RestoreToTime": { + "description": "The date and time to restore the DB cluster to. Value must be a time in Universal Coordinated Time (UTC) format. An example: 2015-03-07T23:45:00Z", + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "description": "The type of restore to be performed. You can specify one of the following values:\nfull-copy - The new DB cluster is restored as a full copy of the source DB cluster.\ncopy-on-write - The new DB cluster is restored as a clone of the source DB cluster.", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration", + "description": "The ScalingConfiguration property type specifies the scaling configuration of an Aurora Serverless DB cluster." + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration", + "description": "Contains the scaling configuration of an Aurora Serverless v2 DB cluster." + }, + "SnapshotIdentifier": { + "description": "The identifier for the DB snapshot or DB cluster snapshot to restore from.\nYou can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot. However, you can use only the ARN to specify a DB snapshot.\nAfter you restore a DB cluster with a SnapshotIdentifier property, you must specify the same SnapshotIdentifier property for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed. However, if you don't specify the SnapshotIdentifier property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, the DB cluster is restored from the specified SnapshotIdentifier property, and the original DB cluster is deleted.", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "description": "The identifier of the source DB cluster from which to restore.", + "type": "string" + }, + "SourceRegion": { + "description": "The AWS Region which contains the source DB cluster when replicating a DB cluster. For example, us-east-1.", + "type": "string" + }, + "StorageEncrypted": { + "description": "Indicates whether the DB instance is encrypted.\nIf you specify the DBClusterIdentifier, SnapshotIdentifier, or SourceDBInstanceIdentifier property, don't specify this property. The value is inherited from the cluster, snapshot, or source DB instance.", + "type": "boolean" + }, + "StorageType": { + "description": "Specifies the storage type to be associated with the DB cluster.", + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "description": "A value that indicates whether to restore the DB cluster to the latest restorable backup time. By default, the DB cluster is not restored to the latest restorable backup time.", + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "description": "A list of EC2 VPC security groups to associate with this DB cluster.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : false", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "typeName": "AWS::RDS::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/MasterUserPassword", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-rds-dbinstance.json new file mode 100644 index 0000000000..4c2f423ae2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-rds-dbinstance.json @@ -0,0 +1,697 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbinstance/aurora_exclusive" + ], + "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": { + "description": "The CA identifier of the CA certificate used for the DB instance's server certificate.", + "type": "string" + }, + "ValidTill": { + "description": "The expiration date of the DB instance\u2019s server certificate.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "DBInstanceRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. IAM roles that are associated with a DB instance grant permission for the DB instance to access other AWS services on your behalf.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB instance.", + "type": "string" + } + }, + "required": [ + "FeatureName", + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "Specifies the DNS address of the DB instance.", + "type": "string" + }, + "HostedZoneId": { + "description": "Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.", + "type": "string" + }, + "Port": { + "description": "Specifies the port that the database engine is listening on.", + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS key identifier that is used to encrypt the secret.", + "type": "string" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the secret.", + "type": "string" + } + }, + "type": "object" + }, + "ProcessorFeature": { + "additionalProperties": false, + "properties": { + "Name": { + "description": "The name of the processor feature. Valid names are coreCount and threadsPerCore.", + "enum": [ + "coreCount", + "threadsPerCore" + ], + "type": "string" + }, + "Value": { + "description": "The value of a processor feature name.", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SourceDBInstanceIdentifier": { + "properties": { + "CharacterSetName": false, + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "deprecatedProperties": [ + "/properties/TdeCredentialArn", + "/properties/TdeCredentialPassword" + ], + "description": "The AWS::RDS::DBInstance resource creates an Amazon RDS DB instance.", + "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: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": { + "description": "The amount of storage (in gigabytes) to be initially allocated for the database instance.", + "pattern": "^[0-9]*$", + "type": "string" + }, + "AllowMajorVersionUpgrade": { + "description": "A value that indicates whether major version upgrades are allowed. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible.", + "type": "boolean" + }, + "AssociatedRoles": { + "description": "The AWS Identity and Access Management (IAM) roles associated with the DB instance.", + "items": { + "$ref": "#/definitions/DBInstanceRole" + }, + "type": "array" + }, + "AutoMinorVersionUpgrade": { + "description": "A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are applied automatically.", + "type": "boolean" + }, + "AutomaticBackupReplicationRegion": { + "description": "Enables replication of automated backups to a different Amazon Web Services Region.", + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "description": "The Availability Zone (AZ) where the database will be created. For information on AWS Regions and Availability Zones.", + "type": "string" + }, + "BackupRetentionPeriod": { + "default": 1, + "description": "The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.", + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CACertificateIdentifier": { + "description": "The identifier of the CA certificate for this DB instance.", + "type": "string" + }, + "CertificateDetails": { + "$ref": "#/definitions/CertificateDetails", + "description": "Returns the details of the DB instance's server certificate." + }, + "CertificateRotationRestart": { + "description": "A value that indicates whether the DB instance is restarted when you rotate your SSL/TLS certificate.\nBy default, the DB instance is restarted when you rotate your SSL/TLS certificate. The certificate is not updated until the DB instance is restarted.\nIf you are using SSL/TLS to connect to the DB instance, follow the appropriate instructions for your DB engine to rotate your SSL/TLS certificate\nThis setting doesn't apply to RDS Custom.", + "type": "boolean" + }, + "CharacterSetName": { + "description": "For supported engines, indicates that the DB instance should be associated with the specified character set.", + "type": "string" + }, + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied.", + "type": "boolean" + }, + "CustomIAMInstanceProfile": { + "description": "The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The instance profile must meet the following requirements:\n * The profile must exist in your account.\n * The profile must have an IAM role that Amazon EC2 has permissions to assume.\n * The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom .\nFor the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide .\n\nThis setting is required for RDS Custom.", + "type": "string" + }, + "DBClusterIdentifier": { + "description": "The identifier of the DB cluster that the instance will belong to.", + "type": "string" + }, + "DBClusterSnapshotIdentifier": { + "description": "The identifier for the RDS for MySQL Multi-AZ DB cluster snapshot to restore from. For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide .\n\nConstraints:\n * Must match the identifier of an existing Multi-AZ DB cluster snapshot.\n * Can't be specified when DBSnapshotIdentifier is specified.\n * Must be specified when DBSnapshotIdentifier isn't specified.\n * If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the DBClusterSnapshotIdentifier must be the ARN of the shared snapshot.\n * Can't be the identifier of an Aurora DB cluster snapshot.\n * Can't be the identifier of an RDS for PostgreSQL Multi-AZ DB cluster snapshot.", + "type": "string" + }, + "DBInstanceArn": { + "description": "The Amazon Resource Name (ARN) for the DB instance.", + "type": "string" + }, + "DBInstanceClass": { + "cfnRegionSchema": "aws_rds_dbinstance/dbinstanceclass_enum", + "description": "The compute and memory capacity of the DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines.", + "type": "string" + }, + "DBInstanceIdentifier": { + "description": "A name for the DB instance. If you specify a name, AWS CloudFormation converts it to lowercase. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the DB instance.", + "maxLength": 63, + "minLength": 1, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBName": { + "description": "The meaning of this parameter differs according to the database engine you use.", + "type": "string" + }, + "DBParameterGroupName": { + "description": "The name of an existing DB parameter group or a reference to an AWS::RDS::DBParameterGroup resource created in the template.", + "type": "string" + }, + "DBSecurityGroups": { + "description": "A list of the DB security groups to assign to the DB instance. The list can include both the name of existing DB security groups or references to AWS::RDS::DBSecurityGroup resources created in the template.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "DBSnapshotIdentifier": { + "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.", + "type": "string" + }, + "DBSubnetGroupName": { + "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC.", + "type": "string" + }, + "DBSystemId": { + "description": "The Oracle system ID (Oracle SID) for a container database (CDB). The Oracle SID is also the name of the CDB. This setting is valid for RDS Custom only.", + "type": "string" + }, + "DbiResourceId": { + "description": "The AWS Region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB instance is accessed.", + "type": "string" + }, + "DedicatedLogVolume": { + "description": "Indicates whether the DB instance has a dedicated log volume (DLV) enabled.", + "type": "boolean" + }, + "DeleteAutomatedBackups": { + "description": "A value that indicates whether to remove automated backups immediately after the DB instance is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB instance is deleted.", + "type": "boolean" + }, + "DeletionProtection": { + "description": "A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.", + "type": "boolean" + }, + "Domain": { + "description": "The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain.", + "type": "string" + }, + "DomainAuthSecretArn": { + "description": "The ARN for the Secrets Manager secret with the credentials for the user joining the domain.", + "type": "string" + }, + "DomainDnsIps": { + "description": "The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers.", + "items": { + "type": "string" + }, + "type": "array" + }, + "DomainFqdn": { + "description": "The fully qualified domain name (FQDN) of an Active Directory domain.", + "type": "string" + }, + "DomainIAMRoleName": { + "description": "Specify the name of the IAM role to be used when making API calls to the Directory Service.", + "type": "string" + }, + "DomainOu": { + "description": "The Active Directory organizational unit for your DB instance to join.", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "description": "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used.", + "items": { + "type": "string" + }, + "type": "array" + }, + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.", + "type": "boolean" + }, + "EnablePerformanceInsights": { + "description": "A value that indicates whether to enable Performance Insights for the DB instance.", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint", + "description": "Specifies the connection endpoint." + }, + "Engine": { + "description": "The name of the database engine that you want to use for this DB instance.", + "type": "string" + }, + "EngineVersion": { + "description": "The version number of the database engine to use.", + "type": "string" + }, + "Iops": { + "description": "The number of I/O operations per second (IOPS) that the database provisions.", + "type": "integer" + }, + "KmsKeyId": { + "description": "The ARN of the AWS Key Management Service (AWS KMS) master key that's used to encrypt the DB instance.", + "type": "string" + }, + "LicenseModel": { + "description": "License model information for this DB instance.", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "A value that indicates whether to manage the master user password with AWS Secrets Manager.", + "type": "boolean" + }, + "MasterUserPassword": { + "description": "The password for the master user.", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret", + "description": "Contains the secret managed by RDS in AWS Secrets Manager for the master user password." + }, + "MasterUsername": { + "description": "The master user name for the DB instance.", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", + "type": "string" + }, + "MaxAllocatedStorage": { + "description": "The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.", + "type": "integer" + }, + "MonitoringInterval": { + "default": 0, + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0.", + "type": "integer" + }, + "MonitoringRoleArn": { + "description": "The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs.", + "type": "string" + }, + "MultiAZ": { + "description": "Specifies whether the database instance is a multiple Availability Zone deployment.", + "type": "boolean" + }, + "NcharCharacterSetName": { + "description": "The name of the NCHAR character set for the Oracle DB instance. This parameter doesn't apply to RDS Custom.", + "type": "string" + }, + "NetworkType": { + "description": "The network type of the DB cluster.", + "type": "string" + }, + "OptionGroupName": { + "description": "Indicates that the DB instance should be associated with the specified option group.", + "type": "string" + }, + "PerformanceInsightsKMSKeyId": { + "description": "The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "description": "The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).", + "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": { + "description": "The port number on which the database accepts connections.", + "pattern": "^\\d*$", + "type": "string" + }, + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter.", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "description": "he weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).", + "type": "string" + }, + "ProcessorFeatures": { + "description": "The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.", + "items": { + "$ref": "#/definitions/ProcessorFeature" + }, + "type": "array" + }, + "PromotionTier": { + "default": 1, + "description": "A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance.", + "maximum": 15, + "minimum": 0, + "type": "integer" + }, + "PubliclyAccessible": { + "description": "Indicates whether the DB instance is an internet-facing instance. If you specify true, AWS CloudFormation creates an instance with a publicly resolvable DNS name, which resolves to a public IP address. If you specify false, AWS CloudFormation creates an internal instance with a DNS name that resolves to a private IP address.", + "type": "boolean" + }, + "ReplicaMode": { + "description": "The open mode of an Oracle read replica. The default is open-read-only.", + "type": "string" + }, + "RestoreTime": { + "description": "The date and time to restore from.", + "format": "date-time", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "description": "The identifier of the Multi-AZ DB cluster that will act as the source for the read replica. Each DB cluster can have up to 15 read replicas.", + "type": "string" + }, + "SourceDBInstanceAutomatedBackupsArn": { + "description": "The Amazon Resource Name (ARN) of the replicated automated backups from which to restore.", + "type": "string" + }, + "SourceDBInstanceIdentifier": { + "description": "If you want to create a Read Replica DB instance, specify the ID of the source DB instance. Each DB instance can have a limited number of Read Replicas.", + "type": "string" + }, + "SourceDbiResourceId": { + "description": "The resource ID of the source DB instance from which to restore.", + "type": "string" + }, + "SourceRegion": { + "description": "The ID of the region that contains the source DB instance for the Read Replica.", + "type": "string" + }, + "StorageEncrypted": { + "description": "A value that indicates whether the DB instance is encrypted. By default, it isn't encrypted.", + "type": "boolean" + }, + "StorageThroughput": { + "description": "Specifies the storage throughput for the DB instance.", + "type": "integer" + }, + "StorageType": { + "description": "Specifies the storage type to be associated with the DB instance.", + "type": "string" + }, + "Tags": { + "description": "Tags to assign to the DB instance.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TdeCredentialArn": { + "description": "The ARN from the key store with which to associate the instance for TDE encryption.", + "type": "string" + }, + "TdeCredentialPassword": { + "description": "The password for the given ARN from the key store in order to access the device.", + "type": "string" + }, + "Timezone": { + "description": "The time zone of the DB instance. The time zone parameter is currently supported only by Microsoft SQL Server.", + "type": "string" + }, + "UseDefaultProcessorFeatures": { + "description": "A value that indicates whether the DB instance class of the DB instance uses its default processor features.", + "type": "boolean" + }, + "UseLatestRestorableTime": { + "description": "A value that indicates whether the DB instance is restored from the latest backup time. By default, the DB instance isn't restored from the latest backup time.", + "type": "boolean" + }, + "VPCSecurityGroups": { + "description": "A list of the VPC security group IDs to assign to the DB instance. The list can include both the physical IDs of existing VPC security groups and references to AWS::EC2::SecurityGroup resources created in the template.", + "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/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/ap_east_1/aws-route53resolver-resolverconfig.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-route53resolver-resolverconfig.json deleted file mode 100644 index 33f4996fbd..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-route53resolver-resolverconfig.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ResourceId", - "/properties/AutodefinedReverseFlag" - ], - "description": "Resource schema for AWS::Route53Resolver::ResolverConfig.", - "handlers": { - "create": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "delete": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "list": { - "permissions": [ - "route53resolver:ListResolverConfigs" - ] - }, - "read": { - "permissions": [ - "route53resolver:GetResolverConfig" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AutodefinedReverse": { - "description": "ResolverAutodefinedReverseStatus, possible values are ENABLING, ENABLED, DISABLING AND DISABLED.", - "enum": [ - "ENABLING", - "ENABLED", - "DISABLING", - "DISABLED" - ], - "type": "string" - }, - "AutodefinedReverseFlag": { - "description": "Represents the desired status of AutodefinedReverse. The only supported value on creation is DISABLE. Deletion of this resource will return AutodefinedReverse to its default value (ENABLED).", - "enum": [ - "DISABLE" - ], - "type": "string" - }, - "Id": { - "description": "Id", - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "OwnerId": { - "description": "AccountId", - "maxLength": 32, - "minLength": 12, - "type": "string" - }, - "ResourceId": { - "description": "ResourceId", - "maxLength": 64, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/OwnerId", - "/properties/Id", - "/properties/AutodefinedReverse" - ], - "required": [ - "ResourceId", - "AutodefinedReverseFlag" - ], - "taggable": false, - "typeName": "AWS::Route53Resolver::ResolverConfig" -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-s3-bucket.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-s3-bucket.json deleted file mode 100644 index 5f53f45913..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-s3-bucket.json +++ /dev/null @@ -1,1645 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/BucketName", - "/properties/ObjectLockEnabled" - ], - "definitions": { - "AbortIncompleteMultipartUpload": { - "additionalProperties": false, - "description": "Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload.", - "properties": { - "DaysAfterInitiation": { - "description": "Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload.", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "DaysAfterInitiation" - ], - "type": "object" - }, - "AccelerateConfiguration": { - "additionalProperties": false, - "properties": { - "AccelerationStatus": { - "description": "Configures the transfer acceleration state for an Amazon S3 bucket.", - "enum": [ - "Enabled", - "Suspended" - ], - "type": "string" - } - }, - "required": [ - "AccelerationStatus" - ], - "type": "object" - }, - "AccessControlTranslation": { - "additionalProperties": false, - "description": "Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS account that owns the source object.", - "properties": { - "Owner": { - "const": "Destination", - "type": "string" - } - }, - "required": [ - "Owner" - ], - "type": "object" - }, - "AnalyticsConfiguration": { - "additionalProperties": false, - "description": "Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.", - "properties": { - "Id": { - "description": "The ID that identifies the analytics configuration.", - "type": "string" - }, - "Prefix": { - "description": "The prefix that an object must have to be included in the analytics results.", - "type": "string" - }, - "StorageClassAnalysis": { - "$ref": "#/definitions/StorageClassAnalysis" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "StorageClassAnalysis", - "Id" - ], - "type": "object" - }, - "Arn": { - "description": "the Amazon Resource Name (ARN) of the specified bucket.", - "type": "string" - }, - "BucketEncryption": { - "additionalProperties": false, - "description": "Specifies default encryption for a bucket using server-side encryption with either Amazon S3-managed keys (SSE-S3) or AWS KMS-managed keys (SSE-KMS).", - "properties": { - "ServerSideEncryptionConfiguration": { - "description": "Specifies the default server-side-encryption configuration.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ServerSideEncryptionRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "ServerSideEncryptionConfiguration" - ], - "type": "object" - }, - "CorsConfiguration": { - "additionalProperties": false, - "properties": { - "CorsRules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/CorsRule", - "maxLength": 100 - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "CorsRules" - ], - "type": "object" - }, - "CorsRule": { - "additionalProperties": false, - "description": "A set of origins and methods (cross-origin access that you want to allow). You can add up to 100 rules to the configuration.", - "properties": { - "AllowedHeaders": { - "description": "Headers that are specified in the Access-Control-Request-Headers header.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AllowedMethods": { - "description": "An HTTP method that you allow the origin to execute.", - "insertionOrder": true, - "items": { - "enum": [ - "GET", - "PUT", - "HEAD", - "POST", - "DELETE" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AllowedOrigins": { - "description": "One or more origins you want customers to be able to access the bucket from.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "ExposedHeaders": { - "description": "One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object).", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Id": { - "description": "A unique identifier for this rule.", - "maxLength": 255, - "type": "string" - }, - "MaxAge": { - "description": "The time in seconds that your browser is to cache the preflight response for the specified resource.", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AllowedMethods", - "AllowedOrigins" - ], - "type": "object" - }, - "DataExport": { - "additionalProperties": false, - "description": "Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.", - "properties": { - "Destination": { - "$ref": "#/definitions/Destination" - }, - "OutputSchemaVersion": { - "const": "V_1", - "description": "The version of the output schema to use when exporting data.", - "type": "string" - } - }, - "required": [ - "Destination", - "OutputSchemaVersion" - ], - "type": "object" - }, - "DefaultRetention": { - "additionalProperties": false, - "description": "The default retention period that you want to apply to new objects placed in the specified bucket.", - "properties": { - "Days": { - "type": "integer" - }, - "Mode": { - "enum": [ - "COMPLIANCE", - "GOVERNANCE" - ], - "type": "string" - }, - "Years": { - "type": "integer" - } - }, - "type": "object" - }, - "DeleteMarkerReplication": { - "additionalProperties": false, - "properties": { - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "type": "object" - }, - "Destination": { - "additionalProperties": false, - "description": "Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC).", - "properties": { - "BucketAccountId": { - "description": "The account ID that owns the destination S3 bucket. ", - "type": "string" - }, - "BucketArn": { - "description": "The Amazon Resource Name (ARN) of the bucket to which data is exported.", - "type": "string" - }, - "Format": { - "description": "Specifies the file format used when exporting data to Amazon S3.", - "enum": [ - "CSV", - "ORC", - "Parquet" - ], - "type": "string" - }, - "Prefix": { - "description": "The prefix to use when exporting data. The prefix is prepended to all results.", - "type": "string" - } - }, - "required": [ - "BucketArn", - "Format" - ], - "type": "object" - }, - "EncryptionConfiguration": { - "additionalProperties": false, - "description": "Specifies encryption-related information for an Amazon S3 bucket that is a destination for replicated objects.", - "properties": { - "ReplicaKmsKeyID": { - "description": "Specifies the ID (Key ARN or Alias ARN) of the customer managed customer master key (CMK) stored in AWS Key Management Service (KMS) for the destination bucket.", - "type": "string" - } - }, - "required": [ - "ReplicaKmsKeyID" - ], - "type": "object" - }, - "EventBridgeConfiguration": { - "additionalProperties": false, - "description": "Describes the Amazon EventBridge notification configuration for an Amazon S3 bucket.", - "properties": { - "EventBridgeEnabled": { - "default": "true", - "description": "Specifies whether to send notifications to Amazon EventBridge when events occur in an Amazon S3 bucket.", - "type": "boolean" - } - }, - "required": [ - "EventBridgeEnabled" - ], - "type": "object" - }, - "FilterRule": { - "additionalProperties": false, - "description": "Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.", - "properties": { - "Name": { - "maxLength": 1024, - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Name" - ], - "type": "object" - }, - "IntelligentTieringConfiguration": { - "additionalProperties": false, - "properties": { - "Id": { - "description": "The ID used to identify the S3 Intelligent-Tiering configuration.", - "type": "string" - }, - "Prefix": { - "description": "An object key name prefix that identifies the subset of objects to which the rule applies.", - "type": "string" - }, - "Status": { - "description": "Specifies the status of the configuration.", - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - }, - "TagFilters": { - "description": "A container for a key-value pair.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Tierings": { - "description": "Specifies a list of S3 Intelligent-Tiering storage class tiers in the configuration. At least one tier must be defined in the list. At most, you can specify two tiers in the list, one for each available AccessTier: ARCHIVE_ACCESS and DEEP_ARCHIVE_ACCESS.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Tiering" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Id", - "Status", - "Tierings" - ], - "type": "object" - }, - "InventoryConfiguration": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/Destination" - }, - "Enabled": { - "description": "Specifies whether the inventory is enabled or disabled.", - "type": "boolean" - }, - "Id": { - "description": "The ID used to identify the inventory configuration.", - "type": "string" - }, - "IncludedObjectVersions": { - "description": "Object versions to include in the inventory list.", - "enum": [ - "All", - "Current" - ], - "type": "string" - }, - "OptionalFields": { - "description": "Contains the optional fields that are included in the inventory results.", - "insertionOrder": true, - "items": { - "enum": [ - "Size", - "LastModifiedDate", - "StorageClass", - "ETag", - "IsMultipartUploaded", - "ReplicationStatus", - "EncryptionStatus", - "ObjectLockRetainUntilDate", - "ObjectLockMode", - "ObjectLockLegalHoldStatus", - "IntelligentTieringAccessTier", - "BucketKeyStatus", - "ChecksumAlgorithm" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Prefix": { - "description": "The prefix that is prepended to all inventory results.", - "type": "string" - }, - "ScheduleFrequency": { - "description": "Specifies the schedule for generating inventory results.", - "enum": [ - "Daily", - "Weekly" - ], - "type": "string" - } - }, - "required": [ - "Destination", - "Enabled", - "Id", - "IncludedObjectVersions", - "ScheduleFrequency" - ], - "type": "object" - }, - "LambdaConfiguration": { - "additionalProperties": false, - "description": "Describes the AWS Lambda functions to invoke and the events for which to invoke them.", - "properties": { - "Event": { - "description": "The Amazon S3 bucket event for which to invoke the AWS Lambda function.", - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter", - "description": "The filtering rules that determine which objects invoke the AWS Lambda function." - }, - "Function": { - "description": "The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3 invokes when the specified event type occurs.", - "type": "string" - } - }, - "required": [ - "Function", - "Event" - ], - "type": "object" - }, - "LifecycleConfiguration": { - "additionalProperties": false, - "properties": { - "Rules": { - "description": "A lifecycle rule for individual objects in an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Rule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "DestinationBucketName": { - "description": "The name of an Amazon S3 bucket where Amazon S3 store server access log files. You can store log files in any bucket that you own. By default, logs are stored in the bucket where the LoggingConfiguration property is defined.", - "type": "string" - }, - "LogFilePrefix": { - "type": "string" - } - }, - "type": "object" - }, - "Metrics": { - "additionalProperties": false, - "properties": { - "EventThreshold": { - "$ref": "#/definitions/ReplicationTimeValue" - }, - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "MetricsConfiguration": { - "additionalProperties": false, - "properties": { - "AccessPointArn": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Prefix": { - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Id" - ], - "type": "object" - }, - "NoncurrentVersionExpiration": { - "additionalProperties": false, - "description": "Container for the expiration rule that describes when noncurrent objects are expired. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 expire noncurrent object versions at a specific period in the object's lifetime", - "properties": { - "NewerNoncurrentVersions": { - "description": "Specified the number of newer noncurrent and current versions that must exists before performing the associated action", - "type": "integer" - }, - "NoncurrentDays": { - "description": "Specified the number of days an object is noncurrent before Amazon S3 can perform the associated action", - "type": "integer" - } - }, - "required": [ - "NoncurrentDays" - ], - "type": "object" - }, - "NoncurrentVersionTransition": { - "additionalProperties": false, - "description": "Container for the transition rule that describes when noncurrent objects transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's lifetime.", - "properties": { - "NewerNoncurrentVersions": { - "description": "Specified the number of newer noncurrent and current versions that must exists before performing the associated action", - "type": "integer" - }, - "StorageClass": { - "description": "The class of storage used to store the object.", - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "Glacier", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "STANDARD_IA" - ], - "type": "string" - }, - "TransitionInDays": { - "description": "Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action.", - "type": "integer" - } - }, - "required": [ - "StorageClass", - "TransitionInDays" - ], - "type": "object" - }, - "NotificationConfiguration": { - "additionalProperties": false, - "description": "Describes the notification configuration for an Amazon S3 bucket.", - "properties": { - "EventBridgeConfiguration": { - "$ref": "#/definitions/EventBridgeConfiguration" - }, - "LambdaConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/LambdaConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "QueueConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/QueueConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "TopicConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TopicConfiguration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "NotificationFilter": { - "additionalProperties": false, - "description": "Specifies object key name filtering rules.", - "properties": { - "S3Key": { - "$ref": "#/definitions/S3KeyFilter" - } - }, - "required": [ - "S3Key" - ], - "type": "object" - }, - "ObjectLockConfiguration": { - "additionalProperties": false, - "properties": { - "ObjectLockEnabled": { - "const": "Enabled", - "type": "string" - }, - "Rule": { - "$ref": "#/definitions/ObjectLockRule" - } - }, - "type": "object" - }, - "ObjectLockRule": { - "additionalProperties": false, - "description": "The Object Lock rule in place for the specified object.", - "properties": { - "DefaultRetention": { - "$ref": "#/definitions/DefaultRetention" - } - }, - "type": "object" - }, - "OwnershipControls": { - "additionalProperties": false, - "properties": { - "Rules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/OwnershipControlsRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "OwnershipControlsRule": { - "additionalProperties": false, - "properties": { - "ObjectOwnership": { - "description": "Specifies an object ownership rule.", - "enum": [ - "ObjectWriter", - "BucketOwnerPreferred", - "BucketOwnerEnforced" - ], - "type": "string" - } - }, - "type": "object" - }, - "PublicAccessBlockConfiguration": { - "additionalProperties": false, - "description": "Configuration that defines how Amazon S3 handles public access.", - "properties": { - "BlockPublicAcls": { - "description": "Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this bucket. Setting this element to TRUE causes the following behavior:\n- PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public.\n - PUT Object calls fail if the request includes a public ACL.\nEnabling this setting doesn't affect existing policies or ACLs.", - "type": "boolean" - }, - "BlockPublicPolicy": { - "description": "Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to TRUE causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.\nEnabling this setting doesn't affect existing bucket policies.", - "type": "boolean" - }, - "IgnorePublicAcls": { - "description": "Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this element to TRUE causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket.\nEnabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.", - "type": "boolean" - }, - "RestrictPublicBuckets": { - "description": "Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to TRUE restricts access to this bucket to only AWS services and authorized users within this account if the bucket has a public policy.\nEnabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked.", - "type": "boolean" - } - }, - "type": "object" - }, - "QueueConfiguration": { - "additionalProperties": false, - "description": "The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages.", - "properties": { - "Event": { - "description": "The Amazon S3 bucket event about which you want to publish messages to Amazon SQS.", - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter", - "description": "The filtering rules that determine which objects trigger notifications." - }, - "Queue": { - "description": "The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type.", - "type": "string" - } - }, - "required": [ - "Event", - "Queue" - ], - "type": "object" - }, - "RedirectAllRequestsTo": { - "additionalProperties": false, - "dependencies": { - "RedirectAllRequestsTo": { - "properties": { - "ErrorDocument": false, - "IndexDocument": false, - "RoutingRules": false - } - } - }, - "description": "Specifies the redirect behavior of all requests to a website endpoint of an Amazon S3 bucket.", - "properties": { - "HostName": { - "description": "Name of the host where requests are redirected.", - "type": "string" - }, - "Protocol": { - "description": "Protocol to use when redirecting requests. The default is the protocol that is used in the original request.", - "enum": [ - "http", - "https" - ], - "type": "string" - } - }, - "required": [ - "HostName" - ], - "type": "object" - }, - "RedirectRule": { - "additionalProperties": false, - "description": "Specifies how requests are redirected. In the event of an error, you can specify a different error code to return.", - "properties": { - "HostName": { - "description": "The host name to use in the redirect request.", - "type": "string" - }, - "HttpRedirectCode": { - "description": "The HTTP redirect code to use on the response. Not required if one of the siblings is present.", - "type": "string" - }, - "Protocol": { - "description": "Protocol to use when redirecting requests. The default is the protocol that is used in the original request.", - "enum": [ - "http", - "https" - ], - "type": "string" - }, - "ReplaceKeyPrefixWith": { - "description": "The object key prefix to use in the redirect request.", - "type": "string" - }, - "ReplaceKeyWith": { - "description": "The specific object key to use in the redirect request.d", - "type": "string" - } - }, - "type": "object" - }, - "ReplicaModifications": { - "additionalProperties": false, - "properties": { - "Status": { - "description": "Specifies whether Amazon S3 replicates modifications on replicas.", - "enum": [ - "Enabled", - "Disabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "ReplicationConfiguration": { - "additionalProperties": false, - "description": "A container for replication rules. You can add up to 1,000 rules. The maximum size of a replication configuration is 2 MB.", - "properties": { - "Role": { - "awsType": "IamRoleArn", - "description": "The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that Amazon S3 assumes when replicating objects.", - "type": "string" - }, - "Rules": { - "description": "A container for one or more replication rules.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ReplicationRule", - "maxLength": 1000, - "minLength": 1 - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Role", - "Rules" - ], - "type": "object" - }, - "ReplicationDestination": { - "additionalProperties": false, - "description": "Specifies which Amazon S3 bucket to store replicated objects in and their storage class.", - "properties": { - "AccessControlTranslation": { - "$ref": "#/definitions/AccessControlTranslation" - }, - "Account": { - "type": "string" - }, - "Bucket": { - "type": "string" - }, - "EncryptionConfiguration": { - "$ref": "#/definitions/EncryptionConfiguration" - }, - "Metrics": { - "$ref": "#/definitions/Metrics" - }, - "ReplicationTime": { - "$ref": "#/definitions/ReplicationTime" - }, - "StorageClass": { - "description": "The storage class to use when replicating objects, such as S3 Standard or reduced redundancy.", - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "REDUCED_REDUNDANCY", - "STANDARD", - "STANDARD_IA" - ], - "type": "string" - } - }, - "required": [ - "Bucket" - ], - "type": "object" - }, - "ReplicationRule": { - "additionalProperties": false, - "description": "Specifies which Amazon S3 objects to replicate and where to store the replicas.", - "properties": { - "DeleteMarkerReplication": { - "$ref": "#/definitions/DeleteMarkerReplication" - }, - "Destination": { - "$ref": "#/definitions/ReplicationDestination" - }, - "Filter": { - "$ref": "#/definitions/ReplicationRuleFilter" - }, - "Id": { - "description": "A unique identifier for the rule.", - "maxLength": 255, - "type": "string" - }, - "Prefix": { - "description": "An object key name prefix that identifies the object or objects to which the rule applies.", - "maxLength": 1024, - "type": "string" - }, - "Priority": { - "type": "integer" - }, - "SourceSelectionCriteria": { - "$ref": "#/definitions/SourceSelectionCriteria" - }, - "Status": { - "description": "Specifies whether the rule is enabled.", - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Destination", - "Status" - ], - "type": "object" - }, - "ReplicationRuleAndOperator": { - "additionalProperties": false, - "properties": { - "Prefix": { - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ReplicationRuleFilter": { - "additionalProperties": false, - "properties": { - "And": { - "$ref": "#/definitions/ReplicationRuleAndOperator" - }, - "Prefix": { - "type": "string" - }, - "TagFilter": { - "$ref": "#/definitions/TagFilter" - } - }, - "type": "object" - }, - "ReplicationTime": { - "additionalProperties": false, - "properties": { - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - }, - "Time": { - "$ref": "#/definitions/ReplicationTimeValue" - } - }, - "required": [ - "Status", - "Time" - ], - "type": "object" - }, - "ReplicationTimeValue": { - "additionalProperties": false, - "properties": { - "Minutes": { - "type": "integer" - } - }, - "required": [ - "Minutes" - ], - "type": "object" - }, - "RoutingRule": { - "additionalProperties": false, - "description": "Specifies the redirect behavior and when a redirect is applied.", - "properties": { - "RedirectRule": { - "$ref": "#/definitions/RedirectRule", - "description": "Container for redirect information. You can redirect requests to another host, to another page, or with another protocol. In the event of an error, you can specify a different error code to return." - }, - "RoutingRuleCondition": { - "$ref": "#/definitions/RoutingRuleCondition" - } - }, - "required": [ - "RedirectRule" - ], - "type": "object" - }, - "RoutingRuleCondition": { - "additionalProperties": false, - "anyOf": [ - { - "required": [ - "HttpErrorCodeReturnedEquals" - ] - }, - { - "required": [ - "KeyPrefixEquals" - ] - } - ], - "description": "A container for describing a condition that must be met for the specified redirect to apply.You must specify at least one of HttpErrorCodeReturnedEquals and KeyPrefixEquals", - "properties": { - "HttpErrorCodeReturnedEquals": { - "description": "The HTTP error code when the redirect is applied. ", - "type": "string" - }, - "KeyPrefixEquals": { - "description": "The object key name prefix when the redirect is applied.", - "type": "string" - } - }, - "type": "object" - }, - "Rule": { - "additionalProperties": false, - "description": "You must specify at least one of the following properties: AbortIncompleteMultipartUpload, ExpirationDate, ExpirationInDays, NoncurrentVersionExpirationInDays, NoncurrentVersionTransition, NoncurrentVersionTransitions, Transition, or Transitions.", - "properties": { - "AbortIncompleteMultipartUpload": { - "$ref": "#/definitions/AbortIncompleteMultipartUpload" - }, - "ExpirationDate": { - "$ref": "#/definitions/iso8601UTC" - }, - "ExpirationInDays": { - "type": "integer" - }, - "ExpiredObjectDeleteMarker": { - "type": "boolean" - }, - "Id": { - "maxLength": 255, - "type": "string" - }, - "NoncurrentVersionExpiration": { - "$ref": "#/definitions/NoncurrentVersionExpiration" - }, - "NoncurrentVersionExpirationInDays": { - "type": "integer" - }, - "NoncurrentVersionTransition": { - "$ref": "#/definitions/NoncurrentVersionTransition" - }, - "NoncurrentVersionTransitions": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/NoncurrentVersionTransition" - }, - "type": "array", - "uniqueItems": true - }, - "ObjectSizeGreaterThan": { - "maxLength": 20, - "pattern": "[0-9]+", - "type": "string" - }, - "ObjectSizeLessThan": { - "maxLength": 20, - "pattern": "[0-9]+", - "type": "string" - }, - "Prefix": { - "type": "string" - }, - "Status": { - "enum": [ - "Enabled", - "Disabled" - ], - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Transition": { - "$ref": "#/definitions/Transition" - }, - "Transitions": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Transition" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "S3KeyFilter": { - "additionalProperties": false, - "description": "A container for object key name prefix and suffix filtering rules.", - "properties": { - "Rules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/FilterRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "ServerSideEncryptionByDefault": { - "additionalProperties": false, - "description": "Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied.", - "properties": { - "KMSMasterKeyID": { - "description": "\"KMSMasterKeyID\" can only be used when you set the value of SSEAlgorithm as aws:kms or aws:kms:dsse.", - "type": "string" - }, - "SSEAlgorithm": { - "enum": [ - "aws:kms", - "AES256", - "aws:kms:dsse" - ], - "type": "string" - } - }, - "required": [ - "SSEAlgorithm" - ], - "type": "object" - }, - "ServerSideEncryptionRule": { - "additionalProperties": false, - "description": "Specifies the default server-side encryption configuration.", - "properties": { - "BucketKeyEnabled": { - "description": "Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the BucketKeyEnabled element to true causes Amazon S3 to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled.", - "type": "boolean" - }, - "ServerSideEncryptionByDefault": { - "$ref": "#/definitions/ServerSideEncryptionByDefault" - } - }, - "type": "object" - }, - "SourceSelectionCriteria": { - "additionalProperties": false, - "description": "A container that describes additional filters for identifying the source objects that you want to replicate.", - "properties": { - "ReplicaModifications": { - "$ref": "#/definitions/ReplicaModifications", - "description": "A filter that you can specify for selection for modifications on replicas." - }, - "SseKmsEncryptedObjects": { - "$ref": "#/definitions/SseKmsEncryptedObjects", - "description": "A container for filter information for the selection of Amazon S3 objects encrypted with AWS KMS." - } - }, - "type": "object" - }, - "SseKmsEncryptedObjects": { - "additionalProperties": false, - "description": "A container for filter information for the selection of S3 objects encrypted with AWS KMS.", - "properties": { - "Status": { - "description": "Specifies whether Amazon S3 replicates objects created with server-side encryption using a customer master key (CMK) stored in AWS Key Management Service.", - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "StorageClassAnalysis": { - "additionalProperties": false, - "description": "Specifies data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes for an Amazon S3 bucket.", - "properties": { - "DataExport": { - "$ref": "#/definitions/DataExport" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "description": "Tags to use to identify a subset of objects for an Amazon S3 bucket.", - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "Tiering": { - "additionalProperties": false, - "properties": { - "AccessTier": { - "description": "S3 Intelligent-Tiering access tier. See Storage class for automatically optimizing frequently and infrequently accessed objects for a list of access tiers in the S3 Intelligent-Tiering storage class.", - "enum": [ - "ARCHIVE_ACCESS", - "DEEP_ARCHIVE_ACCESS" - ], - "type": "string" - }, - "Days": { - "description": "The number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier. The minimum number of days specified for Archive Access tier must be at least 90 days and Deep Archive Access tier must be at least 180 days. The maximum can be up to 2 years (730 days).", - "type": "integer" - } - }, - "required": [ - "AccessTier", - "Days" - ], - "type": "object" - }, - "TopicConfiguration": { - "additionalProperties": false, - "description": "The topic to which notifications are sent and the events for which notifications are generated.", - "properties": { - "Event": { - "description": "The Amazon S3 bucket event about which to send notifications.", - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter", - "description": "The filtering rules that determine for which objects to send notifications." - }, - "Topic": { - "description": "The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 publishes a message when it detects events of the specified type.", - "type": "string" - } - }, - "required": [ - "Event", - "Topic" - ], - "type": "object" - }, - "Transition": { - "additionalProperties": false, - "description": "You must specify at least one of \"TransitionDate\" and \"TransitionInDays\"", - "properties": { - "StorageClass": { - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "Glacier", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "STANDARD_IA" - ], - "type": "string" - }, - "TransitionDate": { - "$ref": "#/definitions/iso8601UTC" - }, - "TransitionInDays": { - "type": "integer" - } - }, - "required": [ - "StorageClass" - ], - "type": "object" - }, - "VersioningConfiguration": { - "additionalProperties": false, - "description": "Describes the versioning state of an Amazon S3 bucket.", - "properties": { - "Status": { - "default": "Suspended", - "description": "The versioning state of the bucket.", - "enum": [ - "Enabled", - "Suspended" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "WebsiteConfiguration": { - "additionalProperties": false, - "description": "Specifies website configuration parameters for an Amazon S3 bucket.", - "properties": { - "ErrorDocument": { - "description": "The name of the error document for the website.", - "type": "string" - }, - "IndexDocument": { - "description": "The name of the index document for the website.", - "type": "string" - }, - "RedirectAllRequestsTo": { - "$ref": "#/definitions/RedirectAllRequestsTo" - }, - "RoutingRules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/RoutingRule" - }, - "type": "array" - } - }, - "type": "object" - }, - "iso8601UTC": { - "description": "The date value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ssZ)", - "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", - "type": "string" - } - }, - "description": "Resource Type definition for AWS::S3::Bucket", - "handlers": { - "create": { - "permissions": [ - "s3:CreateBucket", - "s3:PutBucketTagging", - "s3:PutAnalyticsConfiguration", - "s3:PutEncryptionConfiguration", - "s3:PutBucketCORS", - "s3:PutInventoryConfiguration", - "s3:PutLifecycleConfiguration", - "s3:PutMetricsConfiguration", - "s3:PutBucketNotification", - "s3:PutBucketReplication", - "s3:PutBucketWebsite", - "s3:PutAccelerateConfiguration", - "s3:PutBucketPublicAccessBlock", - "s3:PutReplicationConfiguration", - "s3:PutObjectAcl", - "s3:PutBucketObjectLockConfiguration", - "s3:GetBucketAcl", - "s3:ListBucket", - "iam:PassRole", - "s3:DeleteObject", - "s3:PutBucketLogging", - "s3:PutBucketVersioning", - "s3:PutObjectLockConfiguration", - "s3:PutBucketOwnershipControls", - "s3:PutIntelligentTieringConfiguration" - ] - }, - "delete": { - "permissions": [ - "s3:DeleteBucket", - "s3:ListBucket" - ] - }, - "list": { - "permissions": [ - "s3:ListAllMyBuckets" - ] - }, - "read": { - "permissions": [ - "s3:GetAccelerateConfiguration", - "s3:GetLifecycleConfiguration", - "s3:GetBucketPublicAccessBlock", - "s3:GetAnalyticsConfiguration", - "s3:GetBucketCORS", - "s3:GetEncryptionConfiguration", - "s3:GetInventoryConfiguration", - "s3:GetBucketLogging", - "s3:GetMetricsConfiguration", - "s3:GetBucketNotification", - "s3:GetBucketVersioning", - "s3:GetReplicationConfiguration", - "S3:GetBucketWebsite", - "s3:GetBucketPublicAccessBlock", - "s3:GetBucketObjectLockConfiguration", - "s3:GetBucketTagging", - "s3:GetBucketOwnershipControls", - "s3:GetIntelligentTieringConfiguration", - "s3:ListBucket" - ] - }, - "update": { - "permissions": [ - "s3:PutBucketAcl", - "s3:PutBucketTagging", - "s3:PutAnalyticsConfiguration", - "s3:PutEncryptionConfiguration", - "s3:PutBucketCORS", - "s3:PutInventoryConfiguration", - "s3:PutLifecycleConfiguration", - "s3:PutMetricsConfiguration", - "s3:PutBucketNotification", - "s3:PutBucketReplication", - "s3:PutBucketWebsite", - "s3:PutAccelerateConfiguration", - "s3:PutBucketPublicAccessBlock", - "s3:PutReplicationConfiguration", - "s3:PutBucketOwnershipControls", - "s3:PutIntelligentTieringConfiguration", - "s3:DeleteBucketWebsite", - "s3:PutBucketLogging", - "s3:PutBucketVersioning", - "s3:PutObjectLockConfiguration", - "s3:PutBucketObjectLockConfiguration", - "s3:DeleteBucketAnalyticsConfiguration", - "s3:DeleteBucketCors", - "s3:DeleteBucketMetricsConfiguration", - "s3:DeleteBucketEncryption", - "s3:DeleteBucketLifecycle", - "s3:DeleteBucketReplication", - "iam:PassRole", - "s3:ListBucket" - ] - } - }, - "primaryIdentifier": [ - "/properties/BucketName" - ], - "properties": { - "AccelerateConfiguration": { - "$ref": "#/definitions/AccelerateConfiguration", - "description": "Configuration for the transfer acceleration state." - }, - "AccessControl": { - "description": "A canned access control list (ACL) that grants predefined permissions to the bucket.", - "enum": [ - "AuthenticatedRead", - "AwsExecRead", - "BucketOwnerFullControl", - "BucketOwnerRead", - "LogDeliveryWrite", - "Private", - "PublicRead", - "PublicReadWrite" - ], - "type": "string" - }, - "AnalyticsConfigurations": { - "description": "The configuration and any analyses for the analytics filter of an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/AnalyticsConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "Arn": { - "$ref": "#/definitions/Arn", - "description": "The Amazon Resource Name (ARN) of the specified bucket.", - "examples": [ - "arn:aws:s3:::mybucket" - ] - }, - "BucketEncryption": { - "$ref": "#/definitions/BucketEncryption" - }, - "BucketName": { - "description": "A name for the bucket. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][a-z0-9.-]*[a-z0-9]$", - "type": "string" - }, - "CorsConfiguration": { - "$ref": "#/definitions/CorsConfiguration", - "description": "Rules that define cross-origin resource sharing of objects in this bucket." - }, - "DomainName": { - "description": "The IPv4 DNS name of the specified bucket.", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.amazonaws.com" - ], - "type": "string" - }, - "DualStackDomainName": { - "description": "The IPv6 DNS name of the specified bucket. For more information about dual-stack endpoints, see [Using Amazon S3 Dual-Stack Endpoints](https://docs.aws.amazon.com/AmazonS3/latest/dev/dual-stack-endpoints.html).", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com" - ], - "type": "string" - }, - "IntelligentTieringConfigurations": { - "description": "Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/IntelligentTieringConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "InventoryConfigurations": { - "description": "The inventory configuration for an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/InventoryConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "LifecycleConfiguration": { - "$ref": "#/definitions/LifecycleConfiguration", - "description": "Rules that define how Amazon S3 manages objects during their lifetime." - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration", - "description": "Settings that define where logs are stored." - }, - "MetricsConfigurations": { - "description": "Settings that define a metrics configuration for the CloudWatch request metrics from the bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/MetricsConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "NotificationConfiguration": { - "$ref": "#/definitions/NotificationConfiguration", - "description": "Configuration that defines how Amazon S3 handles bucket notifications." - }, - "ObjectLockConfiguration": { - "$ref": "#/definitions/ObjectLockConfiguration", - "description": "Places an Object Lock configuration on the specified bucket." - }, - "ObjectLockEnabled": { - "description": "Indicates whether this bucket has an Object Lock configuration enabled.", - "type": "boolean" - }, - "OwnershipControls": { - "$ref": "#/definitions/OwnershipControls", - "description": "Specifies the container element for object ownership rules." - }, - "PublicAccessBlockConfiguration": { - "$ref": "#/definitions/PublicAccessBlockConfiguration" - }, - "RegionalDomainName": { - "description": "Returns the regional domain name of the specified bucket.", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.us-east-2.amazonaws.com" - ], - "type": "string" - }, - "ReplicationConfiguration": { - "$ref": "#/definitions/ReplicationConfiguration", - "description": "Configuration for replicating objects in an S3 bucket." - }, - "Tags": { - "description": "An arbitrary set of tags (key-value pairs) for this S3 bucket.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VersioningConfiguration": { - "$ref": "#/definitions/VersioningConfiguration" - }, - "WebsiteConfiguration": { - "$ref": "#/definitions/WebsiteConfiguration" - }, - "WebsiteURL": { - "description": "The Amazon S3 website endpoint for the specified bucket.", - "examples": [ - "Example (IPv4): http://mystack-mybucket-kdwwxmddtr2g.s3-website-us-east-2.amazonaws.com/", - "Example (IPv6): http://mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com/" - ], - "format": "uri", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/DomainName", - "/properties/DualStackDomainName", - "/properties/RegionalDomainName", - "/properties/WebsiteURL" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::S3::Bucket", - "writeOnlyProperties": [ - "/properties/AccessControl", - "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionExpirationInDays", - "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionTransition", - "/properties/LifecycleConfiguration/Rules/*/Transition", - "/properties/ReplicationConfiguration/Rules/*/Prefix", - "/properties/LifecycleConfiguration/Rules/*/ExpiredObjectDeleteMarker" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-securityhub-hub.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-securityhub-hub.json new file mode 100644 index 0000000000..b0401a5225 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-securityhub-hub.json @@ -0,0 +1,28 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::SecurityHub::Hub", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoEnableControls": { + "type": "boolean" + }, + "ControlFindingGenerator": { + "type": "string" + }, + "EnableDefaultStandards": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SecurityHub::Hub" +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-servicecatalogappregistry-application.json new file mode 100644 index 0000000000..b04a7d7289 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-servicecatalogappregistry-application.json @@ -0,0 +1,100 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Name" + ] + ], + "additionalProperties": false, + "definitions": { + "Tags": { + "additionalProperties": false, + "maxProperties": 50, + "patternProperties": { + "^[a-zA-Z+-=._:/]+$": { + "maxLength": 256, + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application", + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-application.html", + "handlers": { + "create": { + "permissions": [ + "servicecatalog:CreateApplication", + "servicecatalog:TagResource", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "servicecatalog:DeleteApplication" + ] + }, + "list": { + "permissions": [ + "servicecatalog:ListApplications" + ] + }, + "read": { + "permissions": [ + "servicecatalog:GetApplication" + ] + }, + "update": { + "permissions": [ + "servicecatalog:GetApplication", + "servicecatalog:ListTagsForResource", + "servicecatalog:TagResource", + "servicecatalog:UntagResource", + "servicecatalog:UpdateApplication", + "iam:CreateServiceLinkedRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", + "type": "string" + }, + "Description": { + "description": "The description of the application. ", + "maxLength": 1024, + "type": "string" + }, + "Id": { + "pattern": "[a-z0-9]{26}", + "type": "string" + }, + "Name": { + "description": "The name of the application. ", + "maxLength": 256, + "minLength": 1, + "pattern": "\\w+", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ServiceCatalogAppRegistry::Application" +} 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 3c63ba493e..2c877a2e07 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py @@ -8,6 +8,7 @@ "AWS::Pinpoint::App", "AWS::Connect::UserHierarchyGroup", "AWS::ApiGatewayV2::ApiMapping", + "AWS::CE::AnomalySubscription", "AWS::Shield::DRTAccess", "AWS::SSO::Assignment", "AWS::Glue::Partition", @@ -63,6 +64,7 @@ "AWS::Logs::ResourcePolicy", "AWS::Lex::BotVersion", "AWS::ServiceCatalog::LaunchNotificationConstraint", + "AWS::DMS::InstanceProfile", "AWS::OpenSearchServerless::VpcEndpoint", "AWS::QuickSight::DataSource", "AWS::IoT::CACertificate", @@ -493,6 +495,7 @@ "AWS::IoT::SoftwarePackageVersion", "AWS::EC2::NetworkInsightsAnalysis", "AWS::EC2::ClientVpnRoute", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::AppSync::ApiKey", "AWS::CloudFormation::TypeActivation", @@ -592,6 +595,7 @@ "AWS::ServiceCatalog::AcceptedPortfolioShare", "AWS::Route53Resolver::FirewallRuleGroupAssociation", "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", "AWS::EC2::Subnet", "AWS::CloudTrail::ResourcePolicy", "AWS::IoTTwinMaker::ComponentType", @@ -774,6 +778,7 @@ "AWS::CloudWatch::AnomalyDetector", "AWS::EC2::SubnetNetworkAclAssociation", "AWS::ServiceCatalog::ServiceAction", + "AWS::DMS::MigrationProject", "AWS::AppStream::Entitlement", "AWS::IAM::UserPolicy", "AWS::Connect::ViewVersion", @@ -1004,6 +1009,7 @@ "AWS::MediaPackage::Channel", "AWS::ApiGatewayV2::RouteResponse", "AWS::CloudWatch::MetricStream", + "AWS::DMS::DataProvider", "AWS::Location::GeofenceCollection", "AWS::SSM::Parameter", "AWS::ApiGatewayV2::ApiGatewayManagedOverrides", @@ -1013,6 +1019,7 @@ "AWS::SageMaker::MonitoringSchedule", "AWS::IAM::OIDCProvider", "AWS::LakeFormation::Tag", + "AWS::CE::AnomalyMonitor", "AWS::ServiceCatalogAppRegistry::ResourceAssociation", "AWS::Timestream::Table", "AWS::EC2::VPNGateway", @@ -1120,6 +1127,7 @@ "aws-apigatewayv2-integration.json", "aws-connect-userhierarchygroup.json", "aws-apigatewayv2-apimapping.json", + "aws-ce-anomalysubscription.json", "aws-shield-drtaccess.json", "aws-sso-assignment.json", "aws-glue-partition.json", @@ -1134,6 +1142,7 @@ "aws-ecs-service.json", "aws-servicecatalog-portfolioprincipalassociation.json", "aws-ram-resourceshare.json", + "aws-dms-replicationconfig.json", "aws-dynamodb-table.json", "aws-amazonmq-configurationassociation.json", "aws-wafregional-ipset.json", @@ -1147,6 +1156,7 @@ "aws-mediaconnect-bridge.json", "aws-config-configurationrecorder.json", "aws-ec2-networkperformancemetricsubscription.json", + "aws-medialive-channel.json", "aws-greengrass-devicedefinition.json", "aws-cloudfront-continuousdeploymentpolicy.json", "aws-quicksight-analysis.json", @@ -1172,6 +1182,7 @@ "aws-logs-resourcepolicy.json", "aws-lex-botversion.json", "aws-servicecatalog-launchnotificationconstraint.json", + "aws-dms-instanceprofile.json", "aws-opensearchserverless-vpcendpoint.json", "aws-quicksight-datasource.json", "aws-iot-cacertificate.json", @@ -1179,6 +1190,7 @@ "aws-robomaker-simulationapplicationversion.json", "aws-ec2-networkinsightsaccessscopeanalysis.json", "aws-transfer-certificate.json", + "aws-connect-instance.json", "aws-apigateway-documentationpart.json", "aws-cloudwatch-compositealarm.json", "aws-route53resolver-firewalldomainlist.json", @@ -1279,7 +1291,6 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", - "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -1308,6 +1319,7 @@ "aws-customerprofiles-integration.json", "aws-workspaces-connectionalias.json", "aws-wafregional-sizeconstraintset.json", + "aws-eventschemas-discoverer.json", "aws-networkmanager-connectpeer.json", "aws-elasticache-usergroup.json", "aws-iot-thinggroup.json", @@ -1344,6 +1356,7 @@ "aws-wafregional-webacl.json", "aws-sagemaker-inferencecomponent.json", "aws-logs-metricfilter.json", + "aws-lambda-function.json", "aws-sns-topic.json", "aws-backup-backupselection.json", "aws-datasync-locationfsxlustre.json", @@ -1371,6 +1384,7 @@ "aws-codestarnotifications-notificationrule.json", "aws-sagemaker-endpointconfig.json", "aws-appmesh-gatewayroute.json", + "aws-cleanrooms-membership.json", "aws-apigateway-apikey.json", "aws-gamelift-location.json", "aws-networkmanager-transitgatewayroutetableattachment.json", @@ -1387,7 +1401,6 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", - "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-entityresolution-schemamapping.json", "aws-wafregional-xssmatchset.json", @@ -1399,6 +1412,7 @@ "aws-ec2-carriergateway.json", "aws-guardduty-member.json", "aws-cloudformation-customresource.json", + "aws-fis-targetaccountconfiguration.json", "aws-refactorspaces-route.json", "aws-nimblestudio-launchprofile.json", "aws-kinesisanalytics-applicationoutput.json", @@ -1411,7 +1425,6 @@ "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", - "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-location-trackerconsumer.json", "aws-vpclattice-servicenetwork.json", @@ -1420,6 +1433,7 @@ "aws-ec2-route.json", "aws-wisdom-assistantassociation.json", "aws-kendra-index.json", + "aws-fis-experimenttemplate.json", "aws-codecommit-repository.json", "aws-cloudformation-hookversion.json", "aws-rolesanywhere-profile.json", @@ -1449,6 +1463,7 @@ "aws-ecs-taskdefinition.json", "aws-sagemaker-model.json", "aws-quicksight-refreshschedule.json", + "aws-memorydb-parametergroup.json", "aws-robomaker-robotapplicationversion.json", "aws-appstream-appblock.json", "aws-iotwireless-serviceprofile.json", @@ -1491,6 +1506,7 @@ "aws-location-routecalculator.json", "aws-servicecatalog-portfolioshare.json", "aws-apigateway-vpclink.json", + "aws-connect-integrationassociation.json", "aws-networkmanager-customergatewayassociation.json", "aws-iam-servercertificate.json", "aws-codestarconnections-connection.json", @@ -1579,6 +1595,7 @@ "aws-codestarconnections-repositorylink.json", "aws-ivs-channel.json", "aws-refactorspaces-service.json", + "aws-memorydb-user.json", "aws-ec2-networkinterfacepermission.json", "aws-servicecatalog-tagoption.json", "aws-servicediscovery-privatednsnamespace.json", @@ -1685,6 +1702,7 @@ "aws-servicecatalog-acceptedportfolioshare.json", "aws-route53resolver-firewallrulegroupassociation.json", "aws-route53resolver-resolverqueryloggingconfig.json", + "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-subnet.json", "aws-cloudtrail-resourcepolicy.json", "aws-iottwinmaker-componenttype.json", @@ -1748,7 +1766,6 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", - "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-customerprofiles-eventstream.json", @@ -1798,6 +1815,7 @@ "aws-ssmincidents-responseplan.json", "aws-lambda-layerversionpermission.json", "aws-secretsmanager-secret.json", + "aws-route53resolver-resolverconfig.json", "aws-elasticache-user.json", "aws-sagemaker-image.json", "aws-logs-subscriptionfilter.json", @@ -1864,6 +1882,7 @@ "aws-cloudwatch-anomalydetector.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-servicecatalog-serviceaction.json", + "aws-dms-migrationproject.json", "aws-appstream-entitlement.json", "aws-iam-userpolicy.json", "aws-connect-viewversion.json", @@ -1882,7 +1901,6 @@ "aws-lightsail-loadbalancertlscertificate.json", "aws-ec2-clientvpntargetnetworkassociation.json", "aws-mediapackagev2-originendpoint.json", - "aws-appsync-graphqlapi.json", "aws-gamelift-matchmakingruleset.json", "aws-ec2-egressonlyinternetgateway.json", "aws-athena-capacityreservation.json", @@ -1965,6 +1983,7 @@ "aws-stepfunctions-statemachine.json", "aws-rds-dbclusterparametergroup.json", "aws-waf-xssmatchset.json", + "aws-ec2-verifiedaccesstrustprovider.json", "aws-appmesh-virtualrouter.json", "aws-pinpoint-emailtemplate.json", "aws-medialive-multiplex.json", @@ -2008,6 +2027,7 @@ "aws-events-endpoint.json", "aws-amazonmq-broker.json", "aws-emr-step.json", + "aws-cleanrooms-collaboration.json", "aws-ssm-association.json", "aws-ec2-clientvpnendpoint.json", "aws-cloudfront-responseheaderspolicy.json", @@ -2034,12 +2054,14 @@ "aws-fsx-volume.json", "aws-route53resolver-outpostresolver.json", "aws-acmpca-certificate.json", + "aws-ec2-ipamallocation.json", "aws-workspaces-workspace.json", "aws-inspector-assessmenttemplate.json", "aws-emr-studio.json", "aws-ec2-instanceconnectendpoint.json", "aws-dax-parametergroup.json", "aws-directoryservice-microsoftad.json", + "aws-memorydb-subnetgroup.json", "aws-appsync-sourceapiassociation.json", "aws-datasync-locationobjectstorage.json", "aws-ecs-capacityprovider.json", @@ -2062,6 +2084,7 @@ "aws-networkmanager-corenetwork.json", "aws-iotwireless-deviceprofile.json", "aws-batch-computeenvironment.json", + "aws-connect-instancestorageconfig.json", "aws-quicksight-vpcconnection.json", "aws-datapipeline-pipeline.json", "aws-iotcoredeviceadvisor-suitedefinition.json", @@ -2083,6 +2106,7 @@ "aws-mediapackage-channel.json", "aws-apigatewayv2-routeresponse.json", "aws-cloudwatch-metricstream.json", + "aws-dms-dataprovider.json", "aws-location-geofencecollection.json", "aws-ssm-parameter.json", "aws-apigatewayv2-apigatewaymanagedoverrides.json", @@ -2092,6 +2116,7 @@ "aws-sagemaker-monitoringschedule.json", "aws-iam-oidcprovider.json", "aws-lakeformation-tag.json", + "aws-ce-anomalymonitor.json", "aws-servicecatalogappregistry-resourceassociation.json", "aws-timestream-table.json", "aws-ec2-vpngateway.json", @@ -2183,8 +2208,8 @@ "aws-elasticloadbalancingv2-listener.json", "aws-redshift-eventsubscription.json", "aws-iotfleethub-application.json", - "aws-connect-user.json", "aws-ssmcontacts-contactchannel.json", + "aws-memorydb-acl.json", "aws-cloudformation-waitconditionhandle.json", "aws-pinpoint-smstemplate.json", "aws-globalaccelerator-accelerator.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-appsync-graphqlapi.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-appsync-graphqlapi.json new file mode 100644 index 0000000000..077c3fd5af --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-appsync-graphqlapi.json @@ -0,0 +1,222 @@ +{ + "additionalProperties": false, + "definitions": { + "AdditionalAuthenticationProvider": { + "additionalProperties": false, + "properties": { + "AuthenticationType": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "UserPoolConfig": { + "$ref": "#/definitions/CognitoUserPoolConfig" + } + }, + "required": [ + "AuthenticationType" + ], + "type": "object" + }, + "CognitoUserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "LambdaAuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsRoleArn": { + "type": "string" + }, + "ExcludeVerboseContent": { + "type": "boolean" + }, + "FieldLogLevel": { + "type": "string" + } + }, + "type": "object" + }, + "OpenIDConnectConfig": { + "additionalProperties": false, + "properties": { + "AuthTTL": { + "type": "number" + }, + "ClientId": { + "type": "string" + }, + "IatTTL": { + "type": "number" + }, + "Issuer": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "UserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "DefaultAction": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AppSync::GraphQLApi", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalAuthenticationProviders": { + "items": { + "$ref": "#/definitions/AdditionalAuthenticationProvider" + }, + "type": "array", + "uniqueItems": false + }, + "ApiId": { + "type": "string" + }, + "ApiType": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "AuthenticationType": { + "enum": [ + "API_KEY", + "AWS_IAM", + "AMAZON_COGNITO_USER_POOLS", + "OPENID_CONNECT", + "AWS_LAMBDA" + ], + "type": "string" + }, + "GraphQLDns": { + "type": "string" + }, + "GraphQLEndpointArn": { + "type": "string" + }, + "GraphQLUrl": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "LogConfig": { + "$ref": "#/definitions/LogConfig" + }, + "MergedApiExecutionRoleArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "OwnerContact": { + "type": "string" + }, + "RealtimeDns": { + "type": "string" + }, + "RealtimeUrl": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UserPoolConfig": { + "$ref": "#/definitions/UserPoolConfig" + }, + "Visibility": { + "type": "string" + }, + "XrayEnabled": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/ApiId", + "/properties/GraphQLEndpointArn", + "/properties/Id", + "/properties/GraphQLDns", + "/properties/GraphQLUrl", + "/properties/RealtimeDns", + "/properties/RealtimeUrl", + "/properties/Arn" + ], + "required": [ + "Name", + "AuthenticationType" + ], + "typeName": "AWS::AppSync::GraphQLApi" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-collaboration.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-collaboration.json deleted file mode 100644 index 3c147bd325..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-collaboration.json +++ /dev/null @@ -1,240 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CreatorDisplayName", - "/properties/CreatorMemberAbilities", - "/properties/DataEncryptionMetadata", - "/properties/QueryLogStatus", - "/properties/Members" - ], - "definitions": { - "CollaborationQueryLogStatus": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "DataEncryptionMetadata": { - "additionalProperties": false, - "properties": { - "AllowCleartext": { - "type": "boolean" - }, - "AllowDuplicates": { - "type": "boolean" - }, - "AllowJoinsOnColumnsWithDifferentNames": { - "type": "boolean" - }, - "PreserveNulls": { - "type": "boolean" - } - }, - "required": [ - "AllowCleartext", - "AllowDuplicates", - "AllowJoinsOnColumnsWithDifferentNames", - "PreserveNulls" - ], - "type": "object" - }, - "MemberAbilities": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/MemberAbility" - }, - "type": "array", - "uniqueItems": true - }, - "MemberAbility": { - "enum": [ - "CAN_QUERY", - "CAN_RECEIVE_RESULTS" - ], - "type": "string" - }, - "MemberSpecification": { - "additionalProperties": false, - "properties": { - "AccountId": { - "maxLength": 12, - "minLength": 12, - "pattern": "^\\d+$", - "type": "string" - }, - "DisplayName": { - "$ref": "#/definitions/Name" - }, - "MemberAbilities": { - "$ref": "#/definitions/MemberAbilities" - } - }, - "required": [ - "AccountId", - "DisplayName", - "MemberAbilities" - ], - "type": "object" - }, - "MemberStatus": { - "enum": [ - "INVITED", - "ACTIVE", - "LEFT", - "REMOVED" - ], - "type": "string" - }, - "Name": { - "maxLength": 100, - "minLength": 1, - "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$", - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Represents a collaboration between AWS accounts that allows for secure data collaboration", - "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html", - "handlers": { - "create": { - "permissions": [ - "cleanrooms:CreateCollaboration", - "cleanrooms:GetCollaboration", - "cleanrooms:ListMembers", - "cleanrooms:ListTagsForResource", - "cleanrooms:TagResource", - "cleanrooms:GetCollaboration", - "cleanrooms:ListCollaborations" - ] - }, - "delete": { - "permissions": [ - "cleanrooms:DeleteCollaboration", - "cleanrooms:GetCollaboration", - "cleanrooms:ListTagsForResource", - "cleanrooms:UntagResource", - "cleanrooms:ListMembers", - "cleanrooms:ListCollaborations" - ] - }, - "list": { - "permissions": [ - "cleanrooms:ListCollaborations" - ] - }, - "read": { - "permissions": [ - "cleanrooms:GetCollaboration", - "cleanrooms:ListMembers", - "cleanrooms:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "cleanrooms:UpdateCollaboration", - "cleanrooms:GetCollaboration", - "cleanrooms:ListMembers", - "cleanrooms:ListTagsForResource", - "cleanrooms:TagResource", - "cleanrooms:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CollaborationIdentifier" - ], - "properties": { - "Arn": { - "maxLength": 100, - "type": "string" - }, - "CollaborationIdentifier": { - "maxLength": 36, - "minLength": 36, - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", - "type": "string" - }, - "CreatorDisplayName": { - "$ref": "#/definitions/Name" - }, - "CreatorMemberAbilities": { - "$ref": "#/definitions/MemberAbilities" - }, - "DataEncryptionMetadata": { - "$ref": "#/definitions/DataEncryptionMetadata" - }, - "Description": { - "maxLength": 255, - "minLength": 1, - "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", - "type": "string" - }, - "Members": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/MemberSpecification" - }, - "maxItems": 9, - "minItems": 0, - "type": "array" - }, - "Name": { - "maxLength": 100, - "minLength": 1, - "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$", - "type": "string" - }, - "QueryLogStatus": { - "$ref": "#/definitions/CollaborationQueryLogStatus" - }, - "Tags": { - "description": "An arbitrary set of tags (key-value pairs) for this cleanrooms collaboration.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CollaborationIdentifier" - ], - "required": [ - "CreatorDisplayName", - "CreatorMemberAbilities", - "Members", - "Name", - "Description", - "QueryLogStatus" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::CleanRooms::Collaboration" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-membership.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-membership.json deleted file mode 100644 index 35bb82ba7c..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-membership.json +++ /dev/null @@ -1,232 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CollaborationIdentifier" - ], - "definitions": { - "MembershipProtectedQueryOutputConfiguration": { - "additionalProperties": false, - "properties": { - "S3": { - "$ref": "#/definitions/ProtectedQueryS3OutputConfiguration" - } - }, - "required": [ - "S3" - ], - "type": "object" - }, - "MembershipProtectedQueryResultConfiguration": { - "additionalProperties": false, - "properties": { - "OutputConfiguration": { - "$ref": "#/definitions/MembershipProtectedQueryOutputConfiguration" - }, - "RoleArn": { - "maxLength": 512, - "minLength": 32, - "type": "string" - } - }, - "required": [ - "OutputConfiguration" - ], - "type": "object" - }, - "MembershipQueryLogStatus": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "MembershipStatus": { - "enum": [ - "ACTIVE", - "REMOVED", - "COLLABORATION_DELETED" - ], - "type": "string" - }, - "ProtectedQueryS3OutputConfiguration": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "type": "string" - }, - "KeyPrefix": { - "type": "string" - }, - "ResultFormat": { - "$ref": "#/definitions/ResultFormat" - } - }, - "required": [ - "ResultFormat", - "Bucket" - ], - "type": "object" - }, - "ResultFormat": { - "enum": [ - "CSV", - "PARQUET" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Represents an AWS account that is a part of a collaboration", - "handlers": { - "create": { - "permissions": [ - "cleanrooms:CreateMembership", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:PutResourcePolicy", - "logs:CreateLogGroup", - "cleanrooms:GetMembership", - "cleanrooms:ListTagsForResource", - "cleanrooms:TagResource", - "cleanrooms:ListMemberships", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "cleanrooms:DeleteMembership", - "cleanrooms:GetMembership", - "cleanrooms:ListMemberships", - "cleanrooms:ListTagsForResource", - "logs:ListLogDeliveries", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery" - ] - }, - "list": { - "permissions": [ - "cleanrooms:ListMemberships" - ] - }, - "read": { - "permissions": [ - "cleanrooms:GetMembership", - "cleanrooms:ListTagsForResource", - "logs:ListLogDeliveries", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery" - ] - }, - "update": { - "permissions": [ - "cleanrooms:UpdateMembership", - "cleanrooms:GetMembership", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:PutResourcePolicy", - "logs:CreateLogGroup", - "cleanrooms:ListTagsForResource", - "cleanrooms:TagResource", - "cleanrooms:UntagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/MembershipIdentifier" - ], - "properties": { - "Arn": { - "maxLength": 100, - "type": "string" - }, - "CollaborationArn": { - "maxLength": 100, - "type": "string" - }, - "CollaborationCreatorAccountId": { - "maxLength": 12, - "minLength": 12, - "pattern": "^\\d+$", - "type": "string" - }, - "CollaborationIdentifier": { - "maxLength": 36, - "minLength": 36, - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", - "type": "string" - }, - "DefaultResultConfiguration": { - "$ref": "#/definitions/MembershipProtectedQueryResultConfiguration" - }, - "MembershipIdentifier": { - "maxLength": 36, - "minLength": 36, - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", - "type": "string" - }, - "QueryLogStatus": { - "$ref": "#/definitions/MembershipQueryLogStatus" - }, - "Tags": { - "description": "An arbitrary set of tags (key-value pairs) for this cleanrooms membership.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CollaborationArn", - "/properties/CollaborationCreatorAccountId", - "/properties/MembershipIdentifier" - ], - "required": [ - "CollaborationIdentifier", - "QueryLogStatus" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::CleanRooms::Membership" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-codedeploy-deploymentgroup.json new file mode 100644 index 0000000000..208990a115 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-codedeploy-deploymentgroup.json @@ -0,0 +1,523 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentGroupName", + "/properties/ApplicationName" + ], + "definitions": { + "Alarm": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AlarmConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/Alarm" + }, + "type": "array", + "uniqueItems": true + }, + "Enabled": { + "type": "boolean" + }, + "IgnorePollAlarmFailure": { + "type": "boolean" + } + }, + "type": "object" + }, + "AutoRollbackConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Events": { + "items": { + "enum": [ + "DEPLOYMENT_FAILURE", + "DEPLOYMENT_STOP_ON_ALARM", + "DEPLOYMENT_STOP_ON_REQUEST" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "BlueGreenDeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "DeploymentReadyOption": { + "$ref": "#/definitions/DeploymentReadyOption" + }, + "GreenFleetProvisioningOption": { + "$ref": "#/definitions/GreenFleetProvisioningOption" + }, + "TerminateBlueInstancesOnDeploymentSuccess": { + "$ref": "#/definitions/BlueInstanceTerminationOption" + } + }, + "type": "object" + }, + "BlueInstanceTerminationOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "TerminationWaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "Deployment": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "IgnoreApplicationStopFailures": { + "type": "boolean" + }, + "Revision": { + "$ref": "#/definitions/RevisionLocation" + } + }, + "required": [ + "Revision" + ], + "type": "object" + }, + "DeploymentReadyOption": { + "additionalProperties": false, + "properties": { + "ActionOnTimeout": { + "type": "string" + }, + "WaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentStyle": { + "additionalProperties": false, + "properties": { + "DeploymentOption": { + "enum": [ + "WITH_TRAFFIC_CONTROL", + "WITHOUT_TRAFFIC_CONTROL" + ], + "type": "string" + }, + "DeploymentType": { + "enum": [ + "IN_PLACE", + "BLUE_GREEN" + ], + "type": "string" + } + }, + "type": "object" + }, + "EC2TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "EC2TagSet": { + "additionalProperties": false, + "properties": { + "Ec2TagSetList": { + "items": { + "$ref": "#/definitions/EC2TagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EC2TagSetListObject": { + "additionalProperties": false, + "properties": { + "Ec2TagGroup": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ECSService": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + } + }, + "required": [ + "ServiceName", + "ClusterName" + ], + "type": "object" + }, + "ELBInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "GitHubLocation": { + "additionalProperties": false, + "properties": { + "CommitId": { + "type": "string" + }, + "Repository": { + "type": "string" + } + }, + "required": [ + "Repository", + "CommitId" + ], + "type": "object" + }, + "GreenFleetProvisioningOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "type": "object" + }, + "LoadBalancerInfo": { + "additionalProperties": false, + "properties": { + "ElbInfoList": { + "items": { + "$ref": "#/definitions/ELBInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupPairInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupPairInfo" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSet": { + "additionalProperties": false, + "properties": { + "OnPremisesTagSetList": { + "items": { + "$ref": "#/definitions/OnPremisesTagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSetListObject": { + "additionalProperties": false, + "properties": { + "OnPremisesTagGroup": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "RevisionLocation": { + "additionalProperties": false, + "properties": { + "GitHubLocation": { + "$ref": "#/definitions/GitHubLocation" + }, + "RevisionType": { + "type": "string" + }, + "S3Location": { + "$ref": "#/definitions/S3Location" + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "BundleType": { + "type": "string" + }, + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupPairInfo": { + "additionalProperties": false, + "properties": { + "ProdTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + }, + "TargetGroups": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TestTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + } + }, + "type": "object" + }, + "TrafficRoute": { + "additionalProperties": false, + "properties": { + "ListenerArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerEvents": { + "items": { + "enum": [ + "DeploymentStart", + "DeploymentSuccess", + "DeploymentFailure", + "DeploymentStop", + "DeploymentRollback", + "DeploymentReady", + "InstanceStart", + "InstanceSuccess", + "InstanceFailure", + "InstanceReady" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "TriggerName": { + "type": "string" + }, + "TriggerTargetArn": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AlarmConfiguration": { + "$ref": "#/definitions/AlarmConfiguration" + }, + "ApplicationName": { + "type": "string" + }, + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AutoRollbackConfiguration" + }, + "AutoScalingGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BlueGreenDeploymentConfiguration": { + "$ref": "#/definitions/BlueGreenDeploymentConfiguration" + }, + "Deployment": { + "$ref": "#/definitions/Deployment" + }, + "DeploymentConfigName": { + "type": "string" + }, + "DeploymentGroupName": { + "type": "string" + }, + "DeploymentStyle": { + "$ref": "#/definitions/DeploymentStyle" + }, + "ECSServices": { + "items": { + "$ref": "#/definitions/ECSService" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagFilters": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagSet": { + "$ref": "#/definitions/EC2TagSet" + }, + "Id": { + "type": "string" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/LoadBalancerInfo" + }, + "OnPremisesInstanceTagFilters": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "OnPremisesTagSet": { + "$ref": "#/definitions/OnPremisesTagSet" + }, + "OutdatedInstancesStrategy": { + "type": "string" + }, + "ServiceRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TerminationHookEnabled": { + "type": "boolean" + }, + "TriggerConfigurations": { + "items": { + "$ref": "#/definitions/TriggerConfig" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "ServiceRoleArn" + ], + "typeName": "AWS::CodeDeploy::DeploymentGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-instance.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-instance.json deleted file mode 100644 index 8e584a138a..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-instance.json +++ /dev/null @@ -1,238 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DirectoryId", - "/properties/InstanceAlias", - "/properties/IdentityManagementType" - ], - "definitions": { - "Attributes": { - "additionalProperties": false, - "properties": { - "AutoResolveBestVoices": { - "$ref": "#/definitions/AutoResolveBestVoices" - }, - "ContactLens": { - "$ref": "#/definitions/ContactLens" - }, - "ContactflowLogs": { - "$ref": "#/definitions/ContactflowLogs" - }, - "EarlyMedia": { - "$ref": "#/definitions/EarlyMedia" - }, - "InboundCalls": { - "$ref": "#/definitions/InboundCalls" - }, - "OutboundCalls": { - "$ref": "#/definitions/OutboundCalls" - }, - "UseCustomTTSVoices": { - "$ref": "#/definitions/UseCustomTTSVoices" - } - }, - "required": [ - "InboundCalls", - "OutboundCalls" - ], - "type": "object" - }, - "AutoResolveBestVoices": { - "description": "Boolean flag which enables AUTO_RESOLVE_BEST_VOICES on an instance.", - "type": "boolean" - }, - "ContactLens": { - "description": "Boolean flag which enables CONTACT_LENS on an instance.", - "type": "boolean" - }, - "ContactflowLogs": { - "description": "Boolean flag which enables CONTACTFLOW_LOGS on an instance.", - "type": "boolean" - }, - "EarlyMedia": { - "description": "Boolean flag which enables EARLY_MEDIA on an instance.", - "type": "boolean" - }, - "InboundCalls": { - "description": "Mandatory element which enables inbound calls on new instance.", - "type": "boolean" - }, - "OutboundCalls": { - "description": "Mandatory element which enables outbound calls on new instance.", - "type": "boolean" - }, - "Tag": { - "additionalProperties": false, - "description": "A key-value pair to associate with a resource.", - "properties": { - "Key": { - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "UseCustomTTSVoices": { - "description": "Boolean flag which enables USE_CUSTOM_TTS_VOICES on an instance.", - "type": "boolean" - } - }, - "description": "Resource Type definition for AWS::Connect::Instance", - "handlers": { - "create": { - "permissions": [ - "connect:CreateInstance", - "connect:DescribeInstance", - "connect:UpdateInstanceAttribute", - "connect:TagResource", - "ds:CheckAlias", - "ds:CreateAlias", - "ds:AuthorizeApplication", - "ds:UnauthorizeApplication", - "ds:CreateIdentityPoolDirectory", - "ds:CreateDirectory", - "ds:DescribeDirectories", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - "logs:CreateLogGroup" - ] - }, - "delete": { - "permissions": [ - "connect:DeleteInstance", - "connect:DescribeInstance", - "connect:UntagResource", - "ds:DeleteDirectory", - "ds:UnauthorizeApplication", - "ds:DescribeDirectories" - ] - }, - "list": { - "permissions": [ - "connect:ListInstances", - "connect:ListInstanceAttributes", - "ds:DescribeDirectories" - ] - }, - "read": { - "permissions": [ - "connect:DescribeInstance", - "connect:ListInstanceAttributes", - "ds:DescribeDirectories" - ] - }, - "update": { - "permissions": [ - "connect:ListInstanceAttributes", - "connect:UpdateInstanceAttribute", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - "connect:TagResource", - "connect:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "An instanceArn is automatically generated on creation based on instanceId.", - "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", - "type": "string" - }, - "Attributes": { - "$ref": "#/definitions/Attributes", - "description": "The attributes for the instance." - }, - "CreatedTime": { - "description": "Timestamp of instance creation logged as part of instance creation.", - "format": "date-time", - "type": "string" - }, - "DirectoryId": { - "description": "Existing directoryId user wants to map to the new Connect instance.", - "maxLength": 12, - "minLength": 12, - "pattern": "^d-[0-9a-f]{10}$", - "type": "string" - }, - "Id": { - "description": "An instanceId is automatically generated on creation and assigned as the unique identifier.", - "type": "string" - }, - "IdentityManagementType": { - "description": "Specifies the type of directory integration for new instance.", - "enum": [ - "SAML", - "CONNECT_MANAGED", - "EXISTING_DIRECTORY" - ], - "type": "string" - }, - "InstanceAlias": { - "description": "Alias of the new directory created as part of new instance creation.", - "maxLength": 62, - "minLength": 1, - "pattern": "^(?!d-)([\\da-zA-Z]+)([-]*[\\da-zA-Z])*$", - "type": "string" - }, - "InstanceStatus": { - "description": "Specifies the creation status of new instance.", - "enum": [ - "CREATION_IN_PROGRESS", - "CREATION_FAILED", - "ACTIVE" - ], - "type": "string" - }, - "ServiceRole": { - "description": "Service linked role created as part of instance creation.", - "type": "string" - }, - "Tags": { - "description": "An array of key-value pairs to apply to this resource.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn", - "/properties/ServiceRole", - "/properties/CreatedTime", - "/properties/InstanceStatus" - ], - "required": [ - "IdentityManagementType", - "Attributes" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Connect::Instance", - "writeOnlyProperties": [ - "/properties/DirectoryId" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-instancestorageconfig.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-instancestorageconfig.json deleted file mode 100644 index 5ed5a6196f..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-instancestorageconfig.json +++ /dev/null @@ -1,262 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/InstanceArn", - "/properties/ResourceType" - ], - "definitions": { - "AssociationId": { - "description": "An associationID is automatically generated when a storage config is associated with an instance", - "maxLength": 100, - "minLength": 1, - "pattern": "^[-a-z0-9]*$", - "type": "string" - }, - "BucketName": { - "description": "A name for the S3 Bucket", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "EncryptionConfig": { - "additionalProperties": false, - "properties": { - "EncryptionType": { - "$ref": "#/definitions/EncryptionType" - }, - "KeyId": { - "$ref": "#/definitions/KeyId" - } - }, - "required": [ - "EncryptionType", - "KeyId" - ], - "type": "object" - }, - "EncryptionType": { - "description": "Specifies default encryption using AWS KMS-Managed Keys", - "enum": [ - "KMS" - ], - "type": "string" - }, - "FirehoseDeliveryStreamArn": { - "description": "An ARN is a unique AWS resource identifier.", - "pattern": "^arn:aws[-a-z0-9]*:firehose:[-a-z0-9]*:[0-9]{12}:deliverystream/[-a-zA-Z0-9_.]*$", - "type": "string" - }, - "Hours": { - "description": "Number of hours", - "type": "number" - }, - "InstanceStorageResourceType": { - "description": "Specifies the type of storage resource available for the instance", - "enum": [ - "CHAT_TRANSCRIPTS", - "CALL_RECORDINGS", - "SCHEDULED_REPORTS", - "MEDIA_STREAMS", - "CONTACT_TRACE_RECORDS", - "AGENT_EVENTS" - ], - "type": "string" - }, - "KeyId": { - "description": "Specifies the encryption key id", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "KinesisFirehoseConfig": { - "additionalProperties": false, - "properties": { - "FirehoseArn": { - "$ref": "#/definitions/FirehoseDeliveryStreamArn" - } - }, - "required": [ - "FirehoseArn" - ], - "type": "object" - }, - "KinesisStreamArn": { - "description": "An ARN is a unique AWS resource identifier.", - "pattern": "^arn:aws[-a-z0-9]*:kinesis:[-a-z0-9]*:[0-9]{12}:stream/[-a-zA-Z0-9_.]*$", - "type": "string" - }, - "KinesisStreamConfig": { - "additionalProperties": false, - "properties": { - "StreamArn": { - "$ref": "#/definitions/KinesisStreamArn" - } - }, - "required": [ - "StreamArn" - ], - "type": "object" - }, - "KinesisVideoStreamConfig": { - "additionalProperties": false, - "properties": { - "EncryptionConfig": { - "$ref": "#/definitions/EncryptionConfig" - }, - "Prefix": { - "$ref": "#/definitions/Prefix" - }, - "RetentionPeriodHours": { - "$ref": "#/definitions/Hours" - } - }, - "required": [ - "Prefix", - "RetentionPeriodHours", - "EncryptionConfig" - ], - "type": "object" - }, - "Prefix": { - "description": "Prefixes are used to infer logical hierarchy", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "S3Config": { - "additionalProperties": false, - "properties": { - "BucketName": { - "$ref": "#/definitions/BucketName" - }, - "BucketPrefix": { - "$ref": "#/definitions/Prefix" - }, - "EncryptionConfig": { - "$ref": "#/definitions/EncryptionConfig" - } - }, - "required": [ - "BucketName", - "BucketPrefix" - ], - "type": "object" - }, - "StorageType": { - "description": "Specifies the storage type to be associated with the instance", - "enum": [ - "S3", - "KINESIS_VIDEO_STREAM", - "KINESIS_STREAM", - "KINESIS_FIREHOSE" - ], - "type": "string" - } - }, - "description": "Resource Type definition for AWS::Connect::InstanceStorageConfig", - "handlers": { - "create": { - "permissions": [ - "connect:AssociateInstanceStorageConfig", - "connect:DescribeInstance", - "ds:DescribeDirectories", - "s3:GetBucketAcl", - "s3:GetBucketLocation", - "iam:PutRolePolicy", - "kinesis:DescribeStream", - "kms:DescribeKey", - "kms:CreateGrant", - "firehose:DescribeDeliveryStream" - ] - }, - "delete": { - "permissions": [ - "connect:DisassociateInstanceStorageConfig", - "connect:DescribeInstance", - "s3:GetBucketAcl", - "s3:GetBucketLocation", - "kms:RetireGrant" - ] - }, - "list": { - "permissions": [ - "connect:DescribeInstance", - "connect:ListInstanceStorageConfigs", - "ds:DescribeDirectories" - ] - }, - "read": { - "permissions": [ - "connect:DescribeInstanceStorageConfig", - "connect:ListInstanceStorageConfigs", - "connect:DescribeInstance", - "ds:DescribeDirectories", - "s3:GetBucketAcl", - "s3:GetBucketLocation" - ] - }, - "update": { - "permissions": [ - "connect:UpdateInstanceStorageConfig", - "ds:DescribeDirectories", - "s3:GetBucketAcl", - "s3:GetBucketLocation", - "kinesis:DescribeStream", - "iam:PutRolePolicy", - "kms:DescribeKey", - "kms:CreateGrant", - "kms:RetireGrant", - "firehose:DescribeDeliveryStream" - ] - } - }, - "primaryIdentifier": [ - "/properties/InstanceArn", - "/properties/AssociationId", - "/properties/ResourceType" - ], - "properties": { - "AssociationId": { - "$ref": "#/definitions/AssociationId" - }, - "InstanceArn": { - "description": "Connect Instance ID with which the storage config will be associated", - "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", - "type": "string" - }, - "KinesisFirehoseConfig": { - "$ref": "#/definitions/KinesisFirehoseConfig" - }, - "KinesisStreamConfig": { - "$ref": "#/definitions/KinesisStreamConfig" - }, - "KinesisVideoStreamConfig": { - "$ref": "#/definitions/KinesisVideoStreamConfig" - }, - "ResourceType": { - "$ref": "#/definitions/InstanceStorageResourceType" - }, - "S3Config": { - "$ref": "#/definitions/S3Config" - }, - "StorageType": { - "$ref": "#/definitions/StorageType" - } - }, - "readOnlyProperties": [ - "/properties/AssociationId" - ], - "required": [ - "InstanceArn", - "ResourceType", - "StorageType" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::Connect::InstanceStorageConfig" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-integrationassociation.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-integrationassociation.json deleted file mode 100644 index aee475cb1b..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-integrationassociation.json +++ /dev/null @@ -1,147 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/InstanceId", - "/properties/IntegrationArn", - "/properties/IntegrationType" - ], - "definitions": { - "InstanceId": { - "description": "Amazon Connect instance identifier", - "maxLength": 100, - "minLength": 1, - "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", - "type": "string" - }, - "IntegrationArn": { - "description": "ARN of Integration being associated with the instance", - "maxLength": 140, - "minLength": 1, - "type": "string" - }, - "IntegrationAssociationId": { - "description": "Identifier of the association with Connect Instance", - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9])*$", - "type": "string" - }, - "IntegrationType": { - "description": "Specifies the integration type to be associated with the instance", - "enum": [ - "LEX_BOT", - "LAMBDA_FUNCTION", - "APPLICATION" - ], - "type": "string" - } - }, - "description": "Resource Type definition for AWS::Connect::IntegrationAssociation", - "handlers": { - "create": { - "permissions": [ - "connect:DescribeInstance", - "ds:DescribeDirectories", - "app-integrations:CreateEventIntegrationAssociation", - "mobiletargeting:GetApp", - "cases:GetDomain", - "wisdom:GetAssistant", - "wisdom:GetKnowledgeBase", - "wisdom:TagResource", - "voiceid:DescribeDomain", - "events:PutTargets", - "events:PutRule", - "connect:AssociateBot", - "connect:AssociateLambdaFunction", - "connect:CreateIntegrationAssociation", - "connect:ListBots", - "connect:ListLambdaFunctions", - "connect:ListIntegrationAssociations", - "lambda:addPermission", - "lex:GetBot", - "lex:DescribeBotAlias", - "lex:CreateResourcePolicy", - "lex:UpdateResourcePolicy", - "lex:CreateResourcePolicyStatement", - "lambda:AddPermission", - "app-integrations:GetApplication", - "iam:AttachRolePolicy", - "iam:CreateServiceLinkedRole", - "iam:GetRolePolicy", - "iam:PutRolePolicy" - ] - }, - "delete": { - "permissions": [ - "connect:DescribeInstance", - "ds:DescribeDirectories", - "app-integrations:DeleteEventIntegrationAssociation", - "events:ListTargetsByRule", - "events:RemoveTargets", - "events:DeleteRule", - "connect:DisassociateBot", - "connect:DisassociateLambdaFunction", - "connect:DeleteIntegrationAssociation", - "connect:ListBots", - "connect:ListLambdaFunctions", - "connect:ListIntegrationAssociations", - "lex:DeleteResourcePolicy", - "lex:DeleteResourcePolicyStatement", - "lambda:RemovePermission", - "iam:GetRolePolicy", - "iam:DeleteRolePolicy", - "iam:PutRolePolicy" - ] - }, - "list": { - "permissions": [ - "connect:ListBots", - "connect:ListLambdaFunctions", - "connect:ListIntegrationAssociations" - ] - }, - "read": { - "permissions": [ - "connect:ListBots", - "connect:ListLambdaFunctions", - "connect:ListIntegrationAssociations" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/InstanceId", - "/properties/IntegrationType", - "/properties/IntegrationArn" - ], - "properties": { - "InstanceId": { - "$ref": "#/definitions/InstanceId" - }, - "IntegrationArn": { - "$ref": "#/definitions/IntegrationArn" - }, - "IntegrationAssociationId": { - "$ref": "#/definitions/IntegrationAssociationId" - }, - "IntegrationType": { - "$ref": "#/definitions/IntegrationType" - } - }, - "readOnlyProperties": [ - "/properties/IntegrationAssociationId" - ], - "required": [ - "InstanceId", - "IntegrationType", - "IntegrationArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::Connect::IntegrationAssociation" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-user.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-user.json new file mode 100644 index 0000000000..b949608f4f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-user.json @@ -0,0 +1,241 @@ +{ + "additionalProperties": false, + "definitions": { + "AfterContactWorkTimeLimit": { + "description": "The After Call Work (ACW) timeout setting, in seconds.", + "minimum": 0, + "type": "integer" + }, + "AutoAccept": { + "description": "The Auto accept setting.", + "type": "boolean" + }, + "DeskPhoneNumber": { + "description": "The phone number for the user's desk phone.", + "type": "string" + }, + "Email": { + "description": "The email address. If you are using SAML for identity management and include this parameter, an error is returned.", + "type": "string" + }, + "FirstName": { + "description": "The first name. This is required if you are using Amazon Connect or SAML for identity management.", + "type": "string" + }, + "LastName": { + "description": "The last name. This is required if you are using Amazon Connect or SAML for identity management.", + "type": "string" + }, + "Mobile": { + "description": "The mobile phone number.", + "pattern": "^\\+[1-9]\\d{1,14}$", + "type": "string" + }, + "PhoneType": { + "description": "The phone type.", + "enum": [ + "SOFT_PHONE", + "DESK_PHONE" + ], + "type": "string" + }, + "SecondaryEmail": { + "description": "The secondary email address. If you provide a secondary email, the user receives email notifications -- other than password reset notifications -- to this email address instead of to their primary email address.", + "pattern": "(?=^.{0,265}$)[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,63}", + "type": "string" + }, + "SecurityProfileArn": { + "description": "The identifier of the security profile for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/security-profile/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is maximum of 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserIdentityInfo": { + "additionalProperties": false, + "description": "Contains information about the identity of a user.", + "properties": { + "Email": { + "$ref": "#/definitions/Email" + }, + "FirstName": { + "$ref": "#/definitions/FirstName" + }, + "LastName": { + "$ref": "#/definitions/LastName" + }, + "Mobile": { + "$ref": "#/definitions/Mobile" + }, + "SecondaryEmail": { + "$ref": "#/definitions/SecondaryEmail" + } + }, + "type": "object" + }, + "UserPhoneConfig": { + "additionalProperties": false, + "description": "Contains information about the phone configuration settings for a user.", + "properties": { + "AfterContactWorkTimeLimit": { + "$ref": "#/definitions/AfterContactWorkTimeLimit" + }, + "AutoAccept": { + "$ref": "#/definitions/AutoAccept" + }, + "DeskPhoneNumber": { + "$ref": "#/definitions/DeskPhoneNumber" + }, + "PhoneType": { + "$ref": "#/definitions/PhoneType" + } + }, + "required": [ + "PhoneType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Connect::User", + "handlers": { + "create": { + "permissions": [ + "connect:CreateUser", + "connect:TagResource", + "connect:AssociateUserProficiencies" + ] + }, + "delete": { + "permissions": [ + "connect:DeleteUser", + "connect:UntagResource" + ] + }, + "read": { + "permissions": [ + "connect:DescribeUser", + "connect:ListUserProficiencies" + ] + }, + "update": { + "permissions": [ + "connect:UpdateUserIdentityInfo", + "connect:UpdateUserPhoneConfig", + "connect:UpdateUserRoutingProfile", + "connect:UpdateUserSecurityProfiles", + "connect:UpdateUserHierarchy", + "connect:TagResource", + "connect:UntagResource", + "connect:AssociateUserProficiencies", + "connect:DisassociateUserProficiencies", + "connect:UpdateUserProficiencies" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserArn" + ], + "properties": { + "DirectoryUserId": { + "description": "The identifier of the user account in the directory used for identity management.", + "type": "string" + }, + "HierarchyGroupArn": { + "description": "The identifier of the hierarchy group for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group/[-a-zA-Z0-9]*$", + "type": "string" + }, + "IdentityInfo": { + "$ref": "#/definitions/UserIdentityInfo", + "description": "The information about the identity of the user." + }, + "InstanceArn": { + "description": "The identifier of the Amazon Connect instance.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Password": { + "description": "The password for the user account. A password is required if you are using Amazon Connect for identity management. Otherwise, it is an error to include a password.", + "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d\\S]{8,64}$", + "type": "string" + }, + "PhoneConfig": { + "$ref": "#/definitions/UserPhoneConfig", + "description": "The phone settings for the user." + }, + "RoutingProfileArn": { + "description": "The identifier of the routing profile for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/routing-profile/[-a-zA-Z0-9]*$", + "type": "string" + }, + "SecurityProfileArns": { + "description": "One or more security profile arns for the user", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SecurityProfileArn" + }, + "maxItems": 10, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "description": "One or more tags.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserArn": { + "description": "The Amazon Resource Name (ARN) for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Username": { + "description": "The user name for the account.", + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\_\\-\\.\\@]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/UserArn" + ], + "required": [ + "InstanceArn", + "PhoneConfig", + "RoutingProfileArn", + "SecurityProfileArns", + "Username" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "typeName": "AWS::Connect::User", + "writeOnlyProperties": [ + "/properties/Password" + ] +} 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 15358362ce..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-dms-replicationconfig.json +++ /dev/null @@ -1,194 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicationConfigIdentifier" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ResourceIdentifier" - ], - "definitions": { - "ComputeConfig": { - "additionalProperties": false, - "description": "Configuration parameters for provisioning a AWS DMS Serverless replication", - "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, - "description": "

The key or keys of the key-value pairs for the resource tag or tags assigned to the\n resource.

", - "properties": { - "Key": { - "description": "

Tag key.

", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "

Tag value.

", - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "A replication configuration that you later provide to configure and start a AWS DMS Serverless replication", - "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:RemoveTagsToResource", - "dms:ListTagsForResource", - "iam:CreateServiceLinkedRole", - "iam:AttachRolePolicy", - "iam:PutRolePolicy", - "iam:UpdateRoleDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicationConfigArn" - ], - "properties": { - "ComputeConfig": { - "$ref": "#/definitions/ComputeConfig" - }, - "ReplicationConfigArn": { - "description": "The Amazon Resource Name (ARN) of the Replication Config", - "type": "string" - }, - "ReplicationConfigIdentifier": { - "description": "A unique identifier of replication configuration", - "type": "string" - }, - "ReplicationSettings": { - "description": "JSON settings for Servereless replications that are provisioned using this replication configuration", - "type": "object" - }, - "ReplicationType": { - "description": "The type of AWS DMS Serverless replication to provision using this replication configuration", - "enum": [ - "full-load", - "full-load-and-cdc", - "cdc" - ], - "type": "string" - }, - "ResourceIdentifier": { - "description": "A unique value or name that you get set for a given resource that can be used to construct an Amazon Resource Name (ARN) for that resource", - "type": "string" - }, - "SourceEndpointArn": { - "description": "The Amazon Resource Name (ARN) of the source endpoint for this AWS DMS Serverless replication configuration", - "type": "string" - }, - "SupplementalSettings": { - "description": "JSON settings for specifying supplemental data", - "type": "object" - }, - "TableMappings": { - "description": "JSON table mappings for AWS DMS Serverless replications that are provisioned using this replication configuration", - "type": "object" - }, - "Tags": { - "description": "

Contains a map of the key-value pairs for the resource tag or tags assigned to the dataset.

", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 1, - "type": "array" - }, - "TargetEndpointArn": { - "description": "The Amazon Resource Name (ARN) of the target endpoint for this AWS DMS Serverless replication configuration", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/ReplicationConfigArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-dms", - "tagging": { - "cloudFormationSystemTags": false, - "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-ec2-ipamallocation.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ec2-ipamallocation.json deleted file mode 100644 index 9a9a2fdf87..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ec2-ipamallocation.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/IpamPoolId", - "/properties/Cidr", - "/properties/Description", - "/properties/NetmaskLength" - ], - "definitions": { - "Cidr": { - "description": "Represents an IPAM custom allocation of a single IPv4 or IPv6 CIDR", - "type": "string" - } - }, - "description": "Resource Schema of AWS::EC2::IPAMAllocation Type", - "handlers": { - "create": { - "permissions": [ - "ec2:AllocateIpamPoolCidr", - "ec2:GetIpamPoolAllocations" - ] - }, - "delete": { - "permissions": [ - "ec2:ReleaseIpamPoolAllocation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "IpamPoolId": { - "$ref": "resource-schema.json#/properties/IpamPoolId" - } - }, - "required": [ - "IpamPoolId" - ] - }, - "permissions": [ - "ec2:GetIpamPoolAllocations" - ] - }, - "read": { - "permissions": [ - "ec2:GetIpamPoolAllocations" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamPoolId", - "/properties/IpamPoolAllocationId", - "/properties/Cidr" - ], - "properties": { - "Cidr": { - "$ref": "#/definitions/Cidr" - }, - "Description": { - "type": "string" - }, - "IpamPoolAllocationId": { - "description": "Id of the allocation.", - "type": "string" - }, - "IpamPoolId": { - "description": "Id of the IPAM Pool.", - "type": "string" - }, - "NetmaskLength": { - "description": "The desired netmask length of the allocation. If set, IPAM will choose a block of free space with this size and return the CIDR representing it.", - "type": "integer" - } - }, - "readOnlyProperties": [ - "/properties/IpamPoolAllocationId" - ], - "required": [ - "IpamPoolId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::IPAMAllocation", - "writeOnlyProperties": [ - "/properties/NetmaskLength" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ec2-verifiedaccesstrustprovider.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ec2-verifiedaccesstrustprovider.json deleted file mode 100644 index dc3e6591e6..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ec2-verifiedaccesstrustprovider.json +++ /dev/null @@ -1,236 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PolicyReferenceName", - "/properties/DeviceOptions", - "/properties/DeviceTrustProviderType", - "/properties/TrustProviderType", - "/properties/UserTrustProviderType" - ], - "definitions": { - "DeviceOptions": { - "additionalProperties": false, - "description": "The options for device identity based trust providers.", - "properties": { - "PublicSigningKeyUrl": { - "description": "URL Verified Access will use to verify authenticity of the device tokens.", - "type": "string" - }, - "TenantId": { - "description": "The ID of the tenant application with the device-identity provider.", - "type": "string" - } - }, - "type": "object" - }, - "OidcOptions": { - "additionalProperties": false, - "description": "The OpenID Connect details for an oidc -type, user-identity based trust provider.", - "properties": { - "AuthorizationEndpoint": { - "description": "The OIDC authorization endpoint.", - "type": "string" - }, - "ClientId": { - "description": "The client identifier.", - "type": "string" - }, - "ClientSecret": { - "description": "The client secret.", - "type": "string" - }, - "Issuer": { - "description": "The OIDC issuer.", - "type": "string" - }, - "Scope": { - "description": "OpenID Connect (OIDC) scopes are used by an application during authentication to authorize access to details of a user. Each scope returns a specific set of user attributes.", - "type": "string" - }, - "TokenEndpoint": { - "description": "The OIDC token endpoint.", - "type": "string" - }, - "UserInfoEndpoint": { - "description": "The OIDC user info endpoint.", - "type": "string" - } - }, - "type": "object" - }, - "SseSpecification": { - "$ref": "#/definitions/SseSpecification", - "description": "The configuration options for customer provided KMS encryption." - }, - "Tag": { - "additionalProperties": false, - "description": "A key-value pair to associate with a resource.", - "properties": { - "Key": { - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "The AWS::EC2::VerifiedAccessTrustProvider type describes a verified access trust provider", - "handlers": { - "create": { - "permissions": [ - "ec2:CreateVerifiedAccessTrustProvider", - "ec2:DescribeVerifiedAccessTrustProviders", - "ec2:CreateTags", - "ec2:DescribeTags", - "sso:GetSharedSsoConfiguration", - "kms:DescribeKey", - "kms:RetireGrant", - "kms:CreateGrant", - "kms:GenerateDataKey", - "kms:Decrypt" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteVerifiedAccessTrustProvider", - "ec2:DeleteTags", - "ec2:DescribeVerifiedAccessTrustProviders", - "ec2:DescribeTags", - "kms:DescribeKey", - "kms:RetireGrant", - "kms:CreateGrant", - "kms:GenerateDataKey", - "kms:Decrypt" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeVerifiedAccessTrustProviders", - "ec2:DescribeTags", - "kms:DescribeKey", - "kms:GenerateDataKey", - "kms:Decrypt" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeVerifiedAccessTrustProviders", - "ec2:DescribeTags", - "kms:DescribeKey", - "kms:GenerateDataKey", - "kms:Decrypt" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyVerifiedAccessTrustProvider", - "ec2:DescribeVerifiedAccessTrustProviders", - "ec2:DescribeTags", - "ec2:DeleteTags", - "ec2:CreateTags", - "kms:DescribeKey", - "kms:RetireGrant", - "kms:CreateGrant", - "kms:GenerateDataKey", - "kms:Decrypt" - ] - } - }, - "primaryIdentifier": [ - "/properties/VerifiedAccessTrustProviderId" - ], - "properties": { - "CreationTime": { - "description": "The creation time.", - "type": "string" - }, - "Description": { - "description": "A description for the Amazon Web Services Verified Access trust provider.", - "type": "string" - }, - "DeviceOptions": { - "$ref": "#/definitions/DeviceOptions" - }, - "DeviceTrustProviderType": { - "description": "The type of device-based trust provider. Possible values: jamf|crowdstrike", - "type": "string" - }, - "LastUpdatedTime": { - "description": "The last updated time.", - "type": "string" - }, - "OidcOptions": { - "$ref": "#/definitions/OidcOptions" - }, - "PolicyReferenceName": { - "description": "The identifier to be used when working with policy rules.", - "type": "string" - }, - "SseSpecification": { - "additionalProperties": false, - "description": "The configuration options for customer provided KMS encryption.", - "properties": { - "CustomerManagedKeyEnabled": { - "description": "Whether to encrypt the policy with the provided key or disable encryption", - "type": "boolean" - }, - "KmsKeyArn": { - "description": "KMS Key Arn used to encrypt the group policy", - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "description": "An array of key-value pairs to apply to this resource.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "TrustProviderType": { - "description": "Type of trust provider. Possible values: user|device", - "type": "string" - }, - "UserTrustProviderType": { - "description": "The type of device-based trust provider. Possible values: oidc|iam-identity-center", - "type": "string" - }, - "VerifiedAccessTrustProviderId": { - "description": "The ID of the Amazon Web Services Verified Access trust provider.", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/VerifiedAccessTrustProviderId", - "/properties/CreationTime", - "/properties/LastUpdatedTime" - ], - "required": [ - "TrustProviderType", - "PolicyReferenceName" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2-verified-access.aws-ec2-verifiedaccesstrustprovider", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::VerifiedAccessTrustProvider" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-emr-cluster.json new file mode 100644 index 0000000000..7ce37fccb6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-emr-cluster.json @@ -0,0 +1,858 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Steps", + "/properties/EbsRootVolumeSize", + "/properties/SecurityConfiguration", + "/properties/ScaleDownBehavior", + "/properties/Configurations", + "/properties/ReleaseLabel", + "/properties/BootstrapActions", + "/properties/EbsRootVolumeIops", + "/properties/KerberosAttributes", + "/properties/ServiceRole", + "/properties/LogEncryptionKmsKeyId", + "/properties/Name", + "/properties/EbsRootVolumeThroughput", + "/properties/JobFlowRole", + "/properties/AdditionalInfo", + "/properties/LogUri", + "/properties/CustomAmiId", + "/properties/PlacementGroupConfigs", + "/properties/OSReleaseLabel", + "/properties/AutoScalingRole", + "/properties/Applications" + ], + "definitions": { + "Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ScalingRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/ScriptBootstrapActionConfig" + } + }, + "required": [ + "ScriptBootstrapAction", + "Name" + ], + "type": "object" + }, + "CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "EvaluationPeriods": { + "type": "integer" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "integer" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "ComparisonOperator", + "Period", + "Threshold" + ], + "type": "object" + }, + "ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "integer" + }, + "MaximumCoreCapacityUnits": { + "type": "integer" + }, + "MaximumOnDemandCapacityUnits": { + "type": "integer" + }, + "MinimumCapacityUnits": { + "type": "integer" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "UnitType", + "MaximumCapacityUnits", + "MinimumCapacityUnits" + ], + "type": "object" + }, + "Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "integer" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/EbsBlockDeviceConfig" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/KeyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/InstanceTypeConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchSpecifications": { + "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "integer" + }, + "TargetSpotCapacity": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/OnDemandProvisioningSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/SpotProvisioningSpecification" + } + }, + "type": "object" + }, + "InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceType": { + "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", + "type": "string" + }, + "WeightedCapacity": { + "type": "integer" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/ComputeLimits" + } + }, + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "PlacementGroupConfig": { + "additionalProperties": false, + "properties": { + "InstanceRole": { + "type": "string" + }, + "PlacementStrategy": { + "type": "string" + } + }, + "required": [ + "InstanceRole" + ], + "type": "object" + }, + "PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/ScalingTrigger" + } + }, + "required": [ + "Action", + "Trigger", + "Name" + ], + "type": "object" + }, + "ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BlockDurationMinutes": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "integer" + } + }, + "required": [ + "TimeoutDurationMinutes", + "TimeoutAction" + ], + "type": "object" + }, + "StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "integer" + }, + "SizeInGB": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EMR::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/Application" + }, + "type": "array", + "uniqueItems": true + }, + "AutoScalingRole": { + "type": "string" + }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AutoTerminationPolicy" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/BootstrapActionConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeIops": { + "type": "integer" + }, + "EbsRootVolumeSize": { + "type": "integer" + }, + "EbsRootVolumeThroughput": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Instances": { + "$ref": "#/definitions/JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/KerberosAttributes" + }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, + "LogUri": { + "type": "string" + }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/ManagedScalingPolicy" + }, + "MasterPublicDNS": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OSReleaseLabel": { + "type": "string" + }, + "PlacementGroupConfigs": { + "items": { + "$ref": "#/definitions/PlacementGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "StepConcurrencyLevel": { + "type": "integer" + }, + "Steps": { + "items": { + "$ref": "#/definitions/StepConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/MasterPublicDNS" + ], + "required": [ + "Instances", + "ServiceRole", + "JobFlowRole", + "Name" + ], + "typeName": "AWS::EMR::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-fis-experimenttemplate.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-fis-experimenttemplate.json deleted file mode 100644 index 44471088cb..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-fis-experimenttemplate.json +++ /dev/null @@ -1,399 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Tags", - "/properties/ExperimentOptions/AccountTargeting" - ], - "definitions": { - "ActionId": { - "description": "The ID of the action.", - "maxLength": 64, - "type": "string" - }, - "ExperimentTemplateAction": { - "additionalProperties": false, - "description": "Specifies an action for the experiment template.", - "properties": { - "ActionId": { - "$ref": "#/definitions/ActionId" - }, - "Description": { - "$ref": "#/definitions/ExperimentTemplateActionItemDescription" - }, - "Parameters": { - "additionalProperties": false, - "description": "The parameters for the action, if applicable.", - "patternProperties": { - ".{1,64}": { - "$ref": "#/definitions/ExperimentTemplateActionItemParameter" - } - }, - "type": "object" - }, - "StartAfter": { - "$ref": "#/definitions/ExperimentTemplateActionItemStartAfterList" - }, - "Targets": { - "additionalProperties": false, - "description": "One or more targets for the action.", - "patternProperties": { - ".{1,64}": { - "$ref": "#/definitions/ExperimentTemplateActionItemTarget" - } - }, - "type": "object" - } - }, - "required": [ - "ActionId" - ], - "type": "object" - }, - "ExperimentTemplateActionItemDescription": { - "description": "A description for the action.", - "maxLength": 512, - "type": "string" - }, - "ExperimentTemplateActionItemParameter": { - "maxLength": 1024, - "type": "string" - }, - "ExperimentTemplateActionItemStartAfter": { - "maxLength": 64, - "type": "string" - }, - "ExperimentTemplateActionItemStartAfterList": { - "description": "The names of the actions that must be completed before the current action starts.", - "items": { - "$ref": "#/definitions/ExperimentTemplateActionItemStartAfter" - }, - "type": "array" - }, - "ExperimentTemplateActionItemTarget": { - "maxLength": 64, - "type": "string" - }, - "ExperimentTemplateActionMap": { - "additionalProperties": false, - "description": "The actions for the experiment.", - "patternProperties": { - "[\\S]{1,64}": { - "$ref": "#/definitions/ExperimentTemplateAction" - } - }, - "type": "object" - }, - "ExperimentTemplateDescription": { - "description": "A description for the experiment template.", - "maxLength": 512, - "type": "string" - }, - "ExperimentTemplateExperimentOptions": { - "additionalProperties": false, - "properties": { - "AccountTargeting": { - "description": "The account targeting setting for the experiment template.", - "enum": [ - "multi-account", - "single-account" - ], - "type": "string" - }, - "EmptyTargetResolutionMode": { - "description": "The target resolution failure mode for the experiment template.", - "enum": [ - "fail", - "skip" - ], - "type": "string" - } - }, - "type": "object" - }, - "ExperimentTemplateId": { - "type": "string" - }, - "ExperimentTemplateLogConfiguration": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsConfiguration": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - } - }, - "required": [ - "LogGroupArn" - ], - "type": "object" - }, - "LogSchemaVersion": { - "minimum": 1, - "type": "integer" - }, - "S3Configuration": { - "additionalProperties": false, - "properties": { - "BucketName": { - "maxLength": 63, - "minLength": 3, - "type": "string" - }, - "Prefix": { - "maxLength": 1024, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "BucketName" - ], - "type": "object" - } - }, - "required": [ - "LogSchemaVersion" - ], - "type": "object" - }, - "ExperimentTemplateStopCondition": { - "additionalProperties": false, - "properties": { - "Source": { - "$ref": "#/definitions/StopConditionSource" - }, - "Value": { - "$ref": "#/definitions/StopConditionValue" - } - }, - "required": [ - "Source" - ], - "type": "object" - }, - "ExperimentTemplateStopConditionList": { - "description": "One or more stop conditions.", - "items": { - "$ref": "#/definitions/ExperimentTemplateStopCondition" - }, - "type": "array" - }, - "ExperimentTemplateTarget": { - "additionalProperties": false, - "description": "Specifies a target for an experiment.", - "properties": { - "Filters": { - "$ref": "#/definitions/ExperimentTemplateTargetFilterList" - }, - "Parameters": { - "additionalProperties": false, - "patternProperties": { - ".{1,64}": { - "maxLength": 1024, - "type": "string" - } - }, - "type": "object" - }, - "ResourceArns": { - "$ref": "#/definitions/ResourceArnList" - }, - "ResourceTags": { - "additionalProperties": false, - "patternProperties": { - ".{1,128}": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - }, - "ResourceType": { - "$ref": "#/definitions/ResourceType" - }, - "SelectionMode": { - "$ref": "#/definitions/ExperimentTemplateTargetSelectionMode" - } - }, - "required": [ - "ResourceType", - "SelectionMode" - ], - "type": "object" - }, - "ExperimentTemplateTargetFilter": { - "additionalProperties": false, - "description": "Describes a filter used for the target resource input in an experiment template.", - "properties": { - "Path": { - "$ref": "#/definitions/ExperimentTemplateTargetFilterPath" - }, - "Values": { - "$ref": "#/definitions/ExperimentTemplateTargetFilterValues" - } - }, - "required": [ - "Path", - "Values" - ], - "type": "object" - }, - "ExperimentTemplateTargetFilterList": { - "items": { - "$ref": "#/definitions/ExperimentTemplateTargetFilter" - }, - "type": "array" - }, - "ExperimentTemplateTargetFilterPath": { - "description": "The attribute path for the filter.", - "maxLength": 256, - "type": "string" - }, - "ExperimentTemplateTargetFilterValue": { - "maxLength": 128, - "type": "string" - }, - "ExperimentTemplateTargetFilterValues": { - "description": "The attribute values for the filter.", - "items": { - "$ref": "#/definitions/ExperimentTemplateTargetFilterValue" - }, - "type": "array" - }, - "ExperimentTemplateTargetMap": { - "additionalProperties": false, - "description": "The targets for the experiment.", - "patternProperties": { - ".{1,64}": { - "$ref": "#/definitions/ExperimentTemplateTarget" - } - }, - "type": "object" - }, - "ExperimentTemplateTargetSelectionMode": { - "description": "Scopes the identified resources to a specific number of the resources at random, or a percentage of the resources.", - "maxLength": 64, - "type": "string" - }, - "ResourceArn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - }, - "ResourceArnList": { - "description": "The Amazon Resource Names (ARNs) of the target resources.", - "items": { - "$ref": "#/definitions/ResourceArn" - }, - "type": "array" - }, - "ResourceType": { - "description": "The AWS resource type. The resource type must be supported for the specified action.", - "maxLength": 64, - "type": "string" - }, - "RoleArn": { - "description": "The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.", - "maxLength": 1224, - "type": "string" - }, - "StopConditionSource": { - "maxLength": 64, - "type": "string" - }, - "StopConditionValue": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - } - }, - "description": "Resource schema for AWS::FIS::ExperimentTemplate", - "handlers": { - "create": { - "permissions": [ - "fis:CreateExperimentTemplate", - "fis:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "fis:DeleteExperimentTemplate" - ] - }, - "list": { - "permissions": [ - "fis:ListExperimentTemplates", - "fis:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "fis:GetExperimentTemplate", - "fis:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "fis:UpdateExperimentTemplate", - "fis:TagResource", - "fis:UntagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Actions": { - "$ref": "#/definitions/ExperimentTemplateActionMap" - }, - "Description": { - "$ref": "#/definitions/ExperimentTemplateDescription" - }, - "ExperimentOptions": { - "$ref": "#/definitions/ExperimentTemplateExperimentOptions" - }, - "Id": { - "$ref": "#/definitions/ExperimentTemplateId" - }, - "LogConfiguration": { - "$ref": "#/definitions/ExperimentTemplateLogConfiguration" - }, - "RoleArn": { - "$ref": "#/definitions/RoleArn" - }, - "StopConditions": { - "$ref": "#/definitions/ExperimentTemplateStopConditionList" - }, - "Tags": { - "additionalProperties": false, - "patternProperties": { - ".{1,128}": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - }, - "Targets": { - "$ref": "#/definitions/ExperimentTemplateTargetMap" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Description", - "StopConditions", - "Targets", - "RoleArn", - "Tags" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fis.git", - "typeName": "AWS::FIS::ExperimentTemplate" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-image.json new file mode 100644 index 0000000000..223d64e03e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-image.json @@ -0,0 +1,263 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ImageRecipeArn", + "/properties/ContainerRecipeArn", + "/properties/InfrastructureConfigurationArn", + "/properties/Workflows", + "/properties/DistributionConfigurationArn", + "/properties/ImageTestsConfiguration", + "/properties/ImageScanningConfiguration", + "/properties/EnhancedImageMetadataEnabled", + "/properties/Tags" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Contains settings for Image Builder image resource and container image scans.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "The image tests configuration used when creating this image.", + "properties": { + "ImageTestsEnabled": { + "description": "ImageTestsEnabled", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "TimeoutMinutes", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "WorkflowConfiguration": { + "additionalProperties": false, + "description": "The workflow configuration of the image", + "properties": { + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "enum": [ + "CONTINUE", + "ABORT" + ], + "type": "string" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string" + }, + "Parameters": { + "description": "The parameters associated with the workflow", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "type": "array" + }, + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowParameter": { + "additionalProperties": false, + "description": "A parameter associated with the workflow", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowParameterValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", + "type": "string" + } + }, + "description": "Resource schema for AWS::ImageBuilder::Image", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:GetImage", + "imagebuilder:CreateImage", + "imagebuilder:TagResource", + "inspector2:BatchGetAccountStatus" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "imagebuilder:GetImage", + "imagebuilder:DeleteImage", + "imagebuilder:UnTagResource", + "imagebuilder:CancelImageCreation" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListImages" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImage" + ] + } + }, + "oneOf": [ + { + "required": [ + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string" + }, + "ImageId": { + "description": "The AMI ID of the EC2 AMI in current region.", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration used when creating this image." + }, + "ImageUri": { + "description": "URI for containers created in current Region with default ECR image tag", + "type": "string" + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", + "type": "string" + }, + "Name": { + "description": "The name of the image.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the image.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Name", + "/properties/ImageId", + "/properties/ImageUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Image" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-imagepipeline.json new file mode 100644 index 0000000000..3cf9b2a4a9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-imagepipeline.json @@ -0,0 +1,277 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "Image tests configuration.", + "properties": { + "ImageTestsEnabled": { + "description": "Defines if tests should be executed when building this image.", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "The maximum time in minutes that tests are permitted to run.", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "description": "The schedule of the image pipeline.", + "properties": { + "PipelineExecutionStartCondition": { + "description": "The condition configures when the pipeline should trigger a new image build.", + "enum": [ + "EXPRESSION_MATCH_ONLY", + "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + ], + "type": "string" + }, + "ScheduleExpression": { + "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowConfiguration": { + "additionalProperties": false, + "description": "The workflow configuration of the image", + "properties": { + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "enum": [ + "CONTINUE", + "ABORT" + ], + "type": "string" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string" + }, + "Parameters": { + "description": "The parameters associated with the workflow", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "type": "array" + }, + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowParameter": { + "additionalProperties": false, + "description": "A parameter associated with the workflow", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowParameterValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", + "type": "string" + } + }, + "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:CreateImagePipeline", + "imagebuilder:GetWorkflow", + "inspector2:BatchGetAccountStatus" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:UnTagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:DeleteImagePipeline" + ] + }, + "list": { + "permissions": [ + "imagebuilder:ListImagePipelines" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImagePipeline" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "imagebuilder:GetImagePipeline", + "imagebuilder:UpdateImagePipeline", + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Name", + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "Name", + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image pipeline.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "Description": { + "description": "The description of the image pipeline.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration of the image pipeline." + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", + "type": "string" + }, + "Name": { + "description": "The name of the image pipeline.", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule", + "description": "The schedule of the image pipeline." + }, + "Status": { + "description": "The status of the image pipeline.", + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags of this image pipeline.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::ImagePipeline" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-workflow.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-workflow.json new file mode 100644 index 0000000000..5c25c2361b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-workflow.json @@ -0,0 +1,145 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Version", + "/properties/ChangeDescription", + "/properties/Description", + "/properties/Data", + "/properties/Uri", + "/properties/Type", + "/properties/KmsKeyId", + "/properties/Tags" + ], + "description": "Resource schema for AWS::ImageBuilder::Workflow", + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "kms:GenerateDataKey*", + "kms:Encrypt", + "kms:Decrypt", + "s3:GetObject", + "s3:HeadBucket", + "s3:GetBucketLocation", + "imagebuilder:TagResource", + "imagebuilder:GetWorkflow", + "imagebuilder:CreateWorkflow" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:GetWorkflow", + "imagebuilder:UnTagResource", + "imagebuilder:DeleteWorkflow" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListWorkflows" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Data" + ] + }, + { + "required": [ + "Uri" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the workflow.", + "type": "string" + }, + "ChangeDescription": { + "description": "The change description of the workflow.", + "type": "string" + }, + "Data": { + "description": "The data of the workflow.", + "maxLength": 16000, + "minLength": 1, + "type": "string" + }, + "Description": { + "description": "The description of the workflow.", + "type": "string" + }, + "KmsKeyId": { + "description": "The KMS key identifier used to encrypt the workflow.", + "type": "string" + }, + "Name": { + "description": "The name of the workflow.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the workflow.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "description": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.", + "enum": [ + "BUILD", + "TEST", + "DISTRIBUTION" + ], + "type": "string" + }, + "Uri": { + "description": "The uri of the workflow.", + "type": "string" + }, + "Version": { + "description": "The version of the workflow.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "Name", + "Type", + "Version" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Workflow", + "writeOnlyProperties": [ + "/properties/Data", + "/properties/Uri" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-medialive-channel.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-medialive-channel.json deleted file mode 100644 index d5a7dd8e34..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-medialive-channel.json +++ /dev/null @@ -1,3160 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Vpc" - ], - "definitions": { - "AacSettings": { - "additionalProperties": false, - "properties": { - "Bitrate": { - "type": "number" - }, - "CodingMode": { - "type": "string" - }, - "InputType": { - "type": "string" - }, - "Profile": { - "type": "string" - }, - "RateControlMode": { - "type": "string" - }, - "RawFormat": { - "type": "string" - }, - "SampleRate": { - "type": "number" - }, - "Spec": { - "type": "string" - }, - "VbrQuality": { - "type": "string" - } - }, - "type": "object" - }, - "Ac3Settings": { - "additionalProperties": false, - "properties": { - "AttenuationControl": { - "type": "string" - }, - "Bitrate": { - "type": "number" - }, - "BitstreamMode": { - "type": "string" - }, - "CodingMode": { - "type": "string" - }, - "Dialnorm": { - "type": "integer" - }, - "DrcProfile": { - "type": "string" - }, - "LfeFilter": { - "type": "string" - }, - "MetadataControl": { - "type": "string" - } - }, - "type": "object" - }, - "AncillarySourceSettings": { - "additionalProperties": false, - "properties": { - "SourceAncillaryChannelNumber": { - "type": "integer" - } - }, - "type": "object" - }, - "ArchiveCdnSettings": { - "additionalProperties": false, - "properties": { - "ArchiveS3Settings": { - "$ref": "#/definitions/ArchiveS3Settings" - } - }, - "type": "object" - }, - "ArchiveContainerSettings": { - "additionalProperties": false, - "properties": { - "M2tsSettings": { - "$ref": "#/definitions/M2tsSettings" - }, - "RawSettings": { - "$ref": "#/definitions/RawSettings" - } - }, - "type": "object" - }, - "ArchiveGroupSettings": { - "additionalProperties": false, - "properties": { - "ArchiveCdnSettings": { - "$ref": "#/definitions/ArchiveCdnSettings" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "RolloverInterval": { - "type": "integer" - } - }, - "type": "object" - }, - "ArchiveOutputSettings": { - "additionalProperties": false, - "properties": { - "ContainerSettings": { - "$ref": "#/definitions/ArchiveContainerSettings" - }, - "Extension": { - "type": "string" - }, - "NameModifier": { - "type": "string" - } - }, - "type": "object" - }, - "ArchiveS3Settings": { - "additionalProperties": false, - "properties": { - "CannedAcl": { - "type": "string" - } - }, - "type": "object" - }, - "AribDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "AribSourceSettings": { - "additionalProperties": false, - "type": "object" - }, - "AudioChannelMapping": { - "additionalProperties": false, - "properties": { - "InputChannelLevels": { - "items": { - "$ref": "#/definitions/InputChannelLevel" - }, - "type": "array", - "uniqueItems": false - }, - "OutputChannel": { - "type": "integer" - } - }, - "type": "object" - }, - "AudioCodecSettings": { - "additionalProperties": false, - "properties": { - "AacSettings": { - "$ref": "#/definitions/AacSettings" - }, - "Ac3Settings": { - "$ref": "#/definitions/Ac3Settings" - }, - "Eac3AtmosSettings": { - "$ref": "#/definitions/Eac3AtmosSettings" - }, - "Eac3Settings": { - "$ref": "#/definitions/Eac3Settings" - }, - "Mp2Settings": { - "$ref": "#/definitions/Mp2Settings" - }, - "PassThroughSettings": { - "$ref": "#/definitions/PassThroughSettings" - }, - "WavSettings": { - "$ref": "#/definitions/WavSettings" - } - }, - "type": "object" - }, - "AudioDescription": { - "additionalProperties": false, - "properties": { - "AudioNormalizationSettings": { - "$ref": "#/definitions/AudioNormalizationSettings" - }, - "AudioSelectorName": { - "type": "string" - }, - "AudioType": { - "type": "string" - }, - "AudioTypeControl": { - "type": "string" - }, - "AudioWatermarkingSettings": { - "$ref": "#/definitions/AudioWatermarkSettings" - }, - "CodecSettings": { - "$ref": "#/definitions/AudioCodecSettings" - }, - "LanguageCode": { - "type": "string" - }, - "LanguageCodeControl": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "RemixSettings": { - "$ref": "#/definitions/RemixSettings" - }, - "StreamName": { - "type": "string" - } - }, - "type": "object" - }, - "AudioDolbyEDecode": { - "additionalProperties": false, - "properties": { - "ProgramSelection": { - "type": "string" - } - }, - "type": "object" - }, - "AudioHlsRenditionSelection": { - "additionalProperties": false, - "properties": { - "GroupId": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AudioLanguageSelection": { - "additionalProperties": false, - "properties": { - "LanguageCode": { - "type": "string" - }, - "LanguageSelectionPolicy": { - "type": "string" - } - }, - "type": "object" - }, - "AudioNormalizationSettings": { - "additionalProperties": false, - "properties": { - "Algorithm": { - "type": "string" - }, - "AlgorithmControl": { - "type": "string" - }, - "TargetLkfs": { - "type": "number" - } - }, - "type": "object" - }, - "AudioOnlyHlsSettings": { - "additionalProperties": false, - "properties": { - "AudioGroupId": { - "type": "string" - }, - "AudioOnlyImage": { - "$ref": "#/definitions/InputLocation" - }, - "AudioTrackType": { - "type": "string" - }, - "SegmentType": { - "type": "string" - } - }, - "type": "object" - }, - "AudioPidSelection": { - "additionalProperties": false, - "properties": { - "Pid": { - "type": "integer" - } - }, - "type": "object" - }, - "AudioSelector": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "SelectorSettings": { - "$ref": "#/definitions/AudioSelectorSettings" - } - }, - "type": "object" - }, - "AudioSelectorSettings": { - "additionalProperties": false, - "properties": { - "AudioHlsRenditionSelection": { - "$ref": "#/definitions/AudioHlsRenditionSelection" - }, - "AudioLanguageSelection": { - "$ref": "#/definitions/AudioLanguageSelection" - }, - "AudioPidSelection": { - "$ref": "#/definitions/AudioPidSelection" - }, - "AudioTrackSelection": { - "$ref": "#/definitions/AudioTrackSelection" - } - }, - "type": "object" - }, - "AudioSilenceFailoverSettings": { - "additionalProperties": false, - "properties": { - "AudioSelectorName": { - "type": "string" - }, - "AudioSilenceThresholdMsec": { - "type": "integer" - } - }, - "type": "object" - }, - "AudioTrack": { - "additionalProperties": false, - "properties": { - "Track": { - "type": "integer" - } - }, - "type": "object" - }, - "AudioTrackSelection": { - "additionalProperties": false, - "properties": { - "DolbyEDecode": { - "$ref": "#/definitions/AudioDolbyEDecode" - }, - "Tracks": { - "items": { - "$ref": "#/definitions/AudioTrack" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "AudioWatermarkSettings": { - "additionalProperties": false, - "properties": { - "NielsenWatermarksSettings": { - "$ref": "#/definitions/NielsenWatermarksSettings" - } - }, - "type": "object" - }, - "AutomaticInputFailoverSettings": { - "additionalProperties": false, - "properties": { - "ErrorClearTimeMsec": { - "type": "integer" - }, - "FailoverConditions": { - "items": { - "$ref": "#/definitions/FailoverCondition" - }, - "type": "array", - "uniqueItems": false - }, - "InputPreference": { - "type": "string" - }, - "SecondaryInputId": { - "type": "string" - } - }, - "type": "object" - }, - "AvailBlanking": { - "additionalProperties": false, - "properties": { - "AvailBlankingImage": { - "$ref": "#/definitions/InputLocation" - }, - "State": { - "type": "string" - } - }, - "type": "object" - }, - "AvailConfiguration": { - "additionalProperties": false, - "properties": { - "AvailSettings": { - "$ref": "#/definitions/AvailSettings" - } - }, - "type": "object" - }, - "AvailSettings": { - "additionalProperties": false, - "properties": { - "Esam": { - "$ref": "#/definitions/Esam" - }, - "Scte35SpliceInsert": { - "$ref": "#/definitions/Scte35SpliceInsert" - }, - "Scte35TimeSignalApos": { - "$ref": "#/definitions/Scte35TimeSignalApos" - } - }, - "type": "object" - }, - "BlackoutSlate": { - "additionalProperties": false, - "properties": { - "BlackoutSlateImage": { - "$ref": "#/definitions/InputLocation" - }, - "NetworkEndBlackout": { - "type": "string" - }, - "NetworkEndBlackoutImage": { - "$ref": "#/definitions/InputLocation" - }, - "NetworkId": { - "type": "string" - }, - "State": { - "type": "string" - } - }, - "type": "object" - }, - "BurnInDestinationSettings": { - "additionalProperties": false, - "properties": { - "Alignment": { - "type": "string" - }, - "BackgroundColor": { - "type": "string" - }, - "BackgroundOpacity": { - "type": "integer" - }, - "Font": { - "$ref": "#/definitions/InputLocation" - }, - "FontColor": { - "type": "string" - }, - "FontOpacity": { - "type": "integer" - }, - "FontResolution": { - "type": "integer" - }, - "FontSize": { - "type": "string" - }, - "OutlineColor": { - "type": "string" - }, - "OutlineSize": { - "type": "integer" - }, - "ShadowColor": { - "type": "string" - }, - "ShadowOpacity": { - "type": "integer" - }, - "ShadowXOffset": { - "type": "integer" - }, - "ShadowYOffset": { - "type": "integer" - }, - "TeletextGridControl": { - "type": "string" - }, - "XPosition": { - "type": "integer" - }, - "YPosition": { - "type": "integer" - } - }, - "type": "object" - }, - "CaptionDescription": { - "additionalProperties": false, - "properties": { - "Accessibility": { - "type": "string" - }, - "CaptionSelectorName": { - "type": "string" - }, - "DestinationSettings": { - "$ref": "#/definitions/CaptionDestinationSettings" - }, - "LanguageCode": { - "type": "string" - }, - "LanguageDescription": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "CaptionDestinationSettings": { - "additionalProperties": false, - "properties": { - "AribDestinationSettings": { - "$ref": "#/definitions/AribDestinationSettings" - }, - "BurnInDestinationSettings": { - "$ref": "#/definitions/BurnInDestinationSettings" - }, - "DvbSubDestinationSettings": { - "$ref": "#/definitions/DvbSubDestinationSettings" - }, - "EbuTtDDestinationSettings": { - "$ref": "#/definitions/EbuTtDDestinationSettings" - }, - "EmbeddedDestinationSettings": { - "$ref": "#/definitions/EmbeddedDestinationSettings" - }, - "EmbeddedPlusScte20DestinationSettings": { - "$ref": "#/definitions/EmbeddedPlusScte20DestinationSettings" - }, - "RtmpCaptionInfoDestinationSettings": { - "$ref": "#/definitions/RtmpCaptionInfoDestinationSettings" - }, - "Scte20PlusEmbeddedDestinationSettings": { - "$ref": "#/definitions/Scte20PlusEmbeddedDestinationSettings" - }, - "Scte27DestinationSettings": { - "$ref": "#/definitions/Scte27DestinationSettings" - }, - "SmpteTtDestinationSettings": { - "$ref": "#/definitions/SmpteTtDestinationSettings" - }, - "TeletextDestinationSettings": { - "$ref": "#/definitions/TeletextDestinationSettings" - }, - "TtmlDestinationSettings": { - "$ref": "#/definitions/TtmlDestinationSettings" - }, - "WebvttDestinationSettings": { - "$ref": "#/definitions/WebvttDestinationSettings" - } - }, - "type": "object" - }, - "CaptionLanguageMapping": { - "additionalProperties": false, - "properties": { - "CaptionChannel": { - "type": "integer" - }, - "LanguageCode": { - "type": "string" - }, - "LanguageDescription": { - "type": "string" - } - }, - "type": "object" - }, - "CaptionRectangle": { - "additionalProperties": false, - "properties": { - "Height": { - "type": "number" - }, - "LeftOffset": { - "type": "number" - }, - "TopOffset": { - "type": "number" - }, - "Width": { - "type": "number" - } - }, - "type": "object" - }, - "CaptionSelector": { - "additionalProperties": false, - "properties": { - "LanguageCode": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "SelectorSettings": { - "$ref": "#/definitions/CaptionSelectorSettings" - } - }, - "type": "object" - }, - "CaptionSelectorSettings": { - "additionalProperties": false, - "properties": { - "AncillarySourceSettings": { - "$ref": "#/definitions/AncillarySourceSettings" - }, - "AribSourceSettings": { - "$ref": "#/definitions/AribSourceSettings" - }, - "DvbSubSourceSettings": { - "$ref": "#/definitions/DvbSubSourceSettings" - }, - "EmbeddedSourceSettings": { - "$ref": "#/definitions/EmbeddedSourceSettings" - }, - "Scte20SourceSettings": { - "$ref": "#/definitions/Scte20SourceSettings" - }, - "Scte27SourceSettings": { - "$ref": "#/definitions/Scte27SourceSettings" - }, - "TeletextSourceSettings": { - "$ref": "#/definitions/TeletextSourceSettings" - } - }, - "type": "object" - }, - "CdiInputSpecification": { - "additionalProperties": false, - "properties": { - "Resolution": { - "type": "string" - } - }, - "type": "object" - }, - "ColorSpacePassthroughSettings": { - "additionalProperties": false, - "type": "object" - }, - "DolbyVision81Settings": { - "additionalProperties": false, - "type": "object" - }, - "DvbNitSettings": { - "additionalProperties": false, - "properties": { - "NetworkId": { - "type": "integer" - }, - "NetworkName": { - "type": "string" - }, - "RepInterval": { - "type": "integer" - } - }, - "type": "object" - }, - "DvbSdtSettings": { - "additionalProperties": false, - "properties": { - "OutputSdt": { - "type": "string" - }, - "RepInterval": { - "type": "integer" - }, - "ServiceName": { - "type": "string" - }, - "ServiceProviderName": { - "type": "string" - } - }, - "type": "object" - }, - "DvbSubDestinationSettings": { - "additionalProperties": false, - "properties": { - "Alignment": { - "type": "string" - }, - "BackgroundColor": { - "type": "string" - }, - "BackgroundOpacity": { - "type": "integer" - }, - "Font": { - "$ref": "#/definitions/InputLocation" - }, - "FontColor": { - "type": "string" - }, - "FontOpacity": { - "type": "integer" - }, - "FontResolution": { - "type": "integer" - }, - "FontSize": { - "type": "string" - }, - "OutlineColor": { - "type": "string" - }, - "OutlineSize": { - "type": "integer" - }, - "ShadowColor": { - "type": "string" - }, - "ShadowOpacity": { - "type": "integer" - }, - "ShadowXOffset": { - "type": "integer" - }, - "ShadowYOffset": { - "type": "integer" - }, - "TeletextGridControl": { - "type": "string" - }, - "XPosition": { - "type": "integer" - }, - "YPosition": { - "type": "integer" - } - }, - "type": "object" - }, - "DvbSubSourceSettings": { - "additionalProperties": false, - "properties": { - "OcrLanguage": { - "type": "string" - }, - "Pid": { - "type": "integer" - } - }, - "type": "object" - }, - "DvbTdtSettings": { - "additionalProperties": false, - "properties": { - "RepInterval": { - "type": "integer" - } - }, - "type": "object" - }, - "Eac3AtmosSettings": { - "additionalProperties": false, - "properties": { - "Bitrate": { - "type": "number" - }, - "CodingMode": { - "type": "string" - }, - "Dialnorm": { - "type": "integer" - }, - "DrcLine": { - "type": "string" - }, - "DrcRf": { - "type": "string" - }, - "HeightTrim": { - "type": "number" - }, - "SurroundTrim": { - "type": "number" - } - }, - "type": "object" - }, - "Eac3Settings": { - "additionalProperties": false, - "properties": { - "AttenuationControl": { - "type": "string" - }, - "Bitrate": { - "type": "number" - }, - "BitstreamMode": { - "type": "string" - }, - "CodingMode": { - "type": "string" - }, - "DcFilter": { - "type": "string" - }, - "Dialnorm": { - "type": "integer" - }, - "DrcLine": { - "type": "string" - }, - "DrcRf": { - "type": "string" - }, - "LfeControl": { - "type": "string" - }, - "LfeFilter": { - "type": "string" - }, - "LoRoCenterMixLevel": { - "type": "number" - }, - "LoRoSurroundMixLevel": { - "type": "number" - }, - "LtRtCenterMixLevel": { - "type": "number" - }, - "LtRtSurroundMixLevel": { - "type": "number" - }, - "MetadataControl": { - "type": "string" - }, - "PassthroughControl": { - "type": "string" - }, - "PhaseControl": { - "type": "string" - }, - "StereoDownmix": { - "type": "string" - }, - "SurroundExMode": { - "type": "string" - }, - "SurroundMode": { - "type": "string" - } - }, - "type": "object" - }, - "EbuTtDDestinationSettings": { - "additionalProperties": false, - "properties": { - "CopyrightHolder": { - "type": "string" - }, - "FillLineGap": { - "type": "string" - }, - "FontFamily": { - "type": "string" - }, - "StyleControl": { - "type": "string" - } - }, - "type": "object" - }, - "EmbeddedDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "EmbeddedPlusScte20DestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "EmbeddedSourceSettings": { - "additionalProperties": false, - "properties": { - "Convert608To708": { - "type": "string" - }, - "Scte20Detection": { - "type": "string" - }, - "Source608ChannelNumber": { - "type": "integer" - }, - "Source608TrackNumber": { - "type": "integer" - } - }, - "type": "object" - }, - "EncoderSettings": { - "additionalProperties": false, - "properties": { - "AudioDescriptions": { - "items": { - "$ref": "#/definitions/AudioDescription" - }, - "type": "array", - "uniqueItems": false - }, - "AvailBlanking": { - "$ref": "#/definitions/AvailBlanking" - }, - "AvailConfiguration": { - "$ref": "#/definitions/AvailConfiguration" - }, - "BlackoutSlate": { - "$ref": "#/definitions/BlackoutSlate" - }, - "CaptionDescriptions": { - "items": { - "$ref": "#/definitions/CaptionDescription" - }, - "type": "array", - "uniqueItems": false - }, - "FeatureActivations": { - "$ref": "#/definitions/FeatureActivations" - }, - "GlobalConfiguration": { - "$ref": "#/definitions/GlobalConfiguration" - }, - "MotionGraphicsConfiguration": { - "$ref": "#/definitions/MotionGraphicsConfiguration" - }, - "NielsenConfiguration": { - "$ref": "#/definitions/NielsenConfiguration" - }, - "OutputGroups": { - "items": { - "$ref": "#/definitions/OutputGroup" - }, - "type": "array", - "uniqueItems": false - }, - "ThumbnailConfiguration": { - "$ref": "#/definitions/ThumbnailConfiguration" - }, - "TimecodeConfig": { - "$ref": "#/definitions/TimecodeConfig" - }, - "VideoDescriptions": { - "items": { - "$ref": "#/definitions/VideoDescription" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "EpochLockingSettings": { - "additionalProperties": false, - "properties": { - "CustomEpoch": { - "type": "string" - }, - "JamSyncTime": { - "type": "string" - } - }, - "type": "object" - }, - "Esam": { - "additionalProperties": false, - "properties": { - "AcquisitionPointId": { - "type": "string" - }, - "AdAvailOffset": { - "type": "integer" - }, - "PasswordParam": { - "type": "string" - }, - "PoisEndpoint": { - "type": "string" - }, - "Username": { - "type": "string" - }, - "ZoneIdentity": { - "type": "string" - } - }, - "type": "object" - }, - "FailoverCondition": { - "additionalProperties": false, - "properties": { - "FailoverConditionSettings": { - "$ref": "#/definitions/FailoverConditionSettings" - } - }, - "type": "object" - }, - "FailoverConditionSettings": { - "additionalProperties": false, - "properties": { - "AudioSilenceSettings": { - "$ref": "#/definitions/AudioSilenceFailoverSettings" - }, - "InputLossSettings": { - "$ref": "#/definitions/InputLossFailoverSettings" - }, - "VideoBlackSettings": { - "$ref": "#/definitions/VideoBlackFailoverSettings" - } - }, - "type": "object" - }, - "FeatureActivations": { - "additionalProperties": false, - "properties": { - "InputPrepareScheduleActions": { - "type": "string" - }, - "OutputStaticImageOverlayScheduleActions": { - "type": "string" - } - }, - "type": "object" - }, - "FecOutputSettings": { - "additionalProperties": false, - "properties": { - "ColumnDepth": { - "type": "integer" - }, - "IncludeFec": { - "type": "string" - }, - "RowLength": { - "type": "integer" - } - }, - "type": "object" - }, - "Fmp4HlsSettings": { - "additionalProperties": false, - "properties": { - "AudioRenditionSets": { - "type": "string" - }, - "NielsenId3Behavior": { - "type": "string" - }, - "TimedMetadataBehavior": { - "type": "string" - } - }, - "type": "object" - }, - "FrameCaptureCdnSettings": { - "additionalProperties": false, - "properties": { - "FrameCaptureS3Settings": { - "$ref": "#/definitions/FrameCaptureS3Settings" - } - }, - "type": "object" - }, - "FrameCaptureGroupSettings": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "FrameCaptureCdnSettings": { - "$ref": "#/definitions/FrameCaptureCdnSettings" - } - }, - "type": "object" - }, - "FrameCaptureHlsSettings": { - "additionalProperties": false, - "type": "object" - }, - "FrameCaptureOutputSettings": { - "additionalProperties": false, - "properties": { - "NameModifier": { - "type": "string" - } - }, - "type": "object" - }, - "FrameCaptureS3Settings": { - "additionalProperties": false, - "properties": { - "CannedAcl": { - "type": "string" - } - }, - "type": "object" - }, - "FrameCaptureSettings": { - "additionalProperties": false, - "properties": { - "CaptureInterval": { - "type": "integer" - }, - "CaptureIntervalUnits": { - "type": "string" - }, - "TimecodeBurninSettings": { - "$ref": "#/definitions/TimecodeBurninSettings" - } - }, - "type": "object" - }, - "GlobalConfiguration": { - "additionalProperties": false, - "properties": { - "InitialAudioGain": { - "type": "integer" - }, - "InputEndAction": { - "type": "string" - }, - "InputLossBehavior": { - "$ref": "#/definitions/InputLossBehavior" - }, - "OutputLockingMode": { - "type": "string" - }, - "OutputLockingSettings": { - "$ref": "#/definitions/OutputLockingSettings" - }, - "OutputTimingSource": { - "type": "string" - }, - "SupportLowFramerateInputs": { - "type": "string" - } - }, - "type": "object" - }, - "H264ColorSpaceSettings": { - "additionalProperties": false, - "properties": { - "ColorSpacePassthroughSettings": { - "$ref": "#/definitions/ColorSpacePassthroughSettings" - }, - "Rec601Settings": { - "$ref": "#/definitions/Rec601Settings" - }, - "Rec709Settings": { - "$ref": "#/definitions/Rec709Settings" - } - }, - "type": "object" - }, - "H264FilterSettings": { - "additionalProperties": false, - "properties": { - "TemporalFilterSettings": { - "$ref": "#/definitions/TemporalFilterSettings" - } - }, - "type": "object" - }, - "H264Settings": { - "additionalProperties": false, - "properties": { - "AdaptiveQuantization": { - "type": "string" - }, - "AfdSignaling": { - "type": "string" - }, - "Bitrate": { - "type": "integer" - }, - "BufFillPct": { - "type": "integer" - }, - "BufSize": { - "type": "integer" - }, - "ColorMetadata": { - "type": "string" - }, - "ColorSpaceSettings": { - "$ref": "#/definitions/H264ColorSpaceSettings" - }, - "EntropyEncoding": { - "type": "string" - }, - "FilterSettings": { - "$ref": "#/definitions/H264FilterSettings" - }, - "FixedAfd": { - "type": "string" - }, - "FlickerAq": { - "type": "string" - }, - "ForceFieldPictures": { - "type": "string" - }, - "FramerateControl": { - "type": "string" - }, - "FramerateDenominator": { - "type": "integer" - }, - "FramerateNumerator": { - "type": "integer" - }, - "GopBReference": { - "type": "string" - }, - "GopClosedCadence": { - "type": "integer" - }, - "GopNumBFrames": { - "type": "integer" - }, - "GopSize": { - "type": "number" - }, - "GopSizeUnits": { - "type": "string" - }, - "Level": { - "type": "string" - }, - "LookAheadRateControl": { - "type": "string" - }, - "MaxBitrate": { - "type": "integer" - }, - "MinIInterval": { - "type": "integer" - }, - "NumRefFrames": { - "type": "integer" - }, - "ParControl": { - "type": "string" - }, - "ParDenominator": { - "type": "integer" - }, - "ParNumerator": { - "type": "integer" - }, - "Profile": { - "type": "string" - }, - "QualityLevel": { - "type": "string" - }, - "QvbrQualityLevel": { - "type": "integer" - }, - "RateControlMode": { - "type": "string" - }, - "ScanType": { - "type": "string" - }, - "SceneChangeDetect": { - "type": "string" - }, - "Slices": { - "type": "integer" - }, - "Softness": { - "type": "integer" - }, - "SpatialAq": { - "type": "string" - }, - "SubgopLength": { - "type": "string" - }, - "Syntax": { - "type": "string" - }, - "TemporalAq": { - "type": "string" - }, - "TimecodeBurninSettings": { - "$ref": "#/definitions/TimecodeBurninSettings" - }, - "TimecodeInsertion": { - "type": "string" - } - }, - "type": "object" - }, - "H265ColorSpaceSettings": { - "additionalProperties": false, - "properties": { - "ColorSpacePassthroughSettings": { - "$ref": "#/definitions/ColorSpacePassthroughSettings" - }, - "DolbyVision81Settings": { - "$ref": "#/definitions/DolbyVision81Settings" - }, - "Hdr10Settings": { - "$ref": "#/definitions/Hdr10Settings" - }, - "Rec601Settings": { - "$ref": "#/definitions/Rec601Settings" - }, - "Rec709Settings": { - "$ref": "#/definitions/Rec709Settings" - } - }, - "type": "object" - }, - "H265FilterSettings": { - "additionalProperties": false, - "properties": { - "TemporalFilterSettings": { - "$ref": "#/definitions/TemporalFilterSettings" - } - }, - "type": "object" - }, - "H265Settings": { - "additionalProperties": false, - "properties": { - "AdaptiveQuantization": { - "type": "string" - }, - "AfdSignaling": { - "type": "string" - }, - "AlternativeTransferFunction": { - "type": "string" - }, - "Bitrate": { - "type": "integer" - }, - "BufSize": { - "type": "integer" - }, - "ColorMetadata": { - "type": "string" - }, - "ColorSpaceSettings": { - "$ref": "#/definitions/H265ColorSpaceSettings" - }, - "FilterSettings": { - "$ref": "#/definitions/H265FilterSettings" - }, - "FixedAfd": { - "type": "string" - }, - "FlickerAq": { - "type": "string" - }, - "FramerateDenominator": { - "type": "integer" - }, - "FramerateNumerator": { - "type": "integer" - }, - "GopClosedCadence": { - "type": "integer" - }, - "GopSize": { - "type": "number" - }, - "GopSizeUnits": { - "type": "string" - }, - "Level": { - "type": "string" - }, - "LookAheadRateControl": { - "type": "string" - }, - "MaxBitrate": { - "type": "integer" - }, - "MinIInterval": { - "type": "integer" - }, - "ParDenominator": { - "type": "integer" - }, - "ParNumerator": { - "type": "integer" - }, - "Profile": { - "type": "string" - }, - "QvbrQualityLevel": { - "type": "integer" - }, - "RateControlMode": { - "type": "string" - }, - "ScanType": { - "type": "string" - }, - "SceneChangeDetect": { - "type": "string" - }, - "Slices": { - "type": "integer" - }, - "Tier": { - "type": "string" - }, - "TimecodeBurninSettings": { - "$ref": "#/definitions/TimecodeBurninSettings" - }, - "TimecodeInsertion": { - "type": "string" - } - }, - "type": "object" - }, - "Hdr10Settings": { - "additionalProperties": false, - "properties": { - "MaxCll": { - "type": "integer" - }, - "MaxFall": { - "type": "integer" - } - }, - "type": "object" - }, - "HlsAkamaiSettings": { - "additionalProperties": false, - "properties": { - "ConnectionRetryInterval": { - "type": "integer" - }, - "FilecacheDuration": { - "type": "integer" - }, - "HttpTransferMode": { - "type": "string" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - }, - "Salt": { - "type": "string" - }, - "Token": { - "type": "string" - } - }, - "type": "object" - }, - "HlsBasicPutSettings": { - "additionalProperties": false, - "properties": { - "ConnectionRetryInterval": { - "type": "integer" - }, - "FilecacheDuration": { - "type": "integer" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - } - }, - "type": "object" - }, - "HlsCdnSettings": { - "additionalProperties": false, - "properties": { - "HlsAkamaiSettings": { - "$ref": "#/definitions/HlsAkamaiSettings" - }, - "HlsBasicPutSettings": { - "$ref": "#/definitions/HlsBasicPutSettings" - }, - "HlsMediaStoreSettings": { - "$ref": "#/definitions/HlsMediaStoreSettings" - }, - "HlsS3Settings": { - "$ref": "#/definitions/HlsS3Settings" - }, - "HlsWebdavSettings": { - "$ref": "#/definitions/HlsWebdavSettings" - } - }, - "type": "object" - }, - "HlsGroupSettings": { - "additionalProperties": false, - "properties": { - "AdMarkers": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "BaseUrlContent": { - "type": "string" - }, - "BaseUrlContent1": { - "type": "string" - }, - "BaseUrlManifest": { - "type": "string" - }, - "BaseUrlManifest1": { - "type": "string" - }, - "CaptionLanguageMappings": { - "items": { - "$ref": "#/definitions/CaptionLanguageMapping" - }, - "type": "array", - "uniqueItems": false - }, - "CaptionLanguageSetting": { - "type": "string" - }, - "ClientCache": { - "type": "string" - }, - "CodecSpecification": { - "type": "string" - }, - "ConstantIv": { - "type": "string" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "DirectoryStructure": { - "type": "string" - }, - "DiscontinuityTags": { - "type": "string" - }, - "EncryptionType": { - "type": "string" - }, - "HlsCdnSettings": { - "$ref": "#/definitions/HlsCdnSettings" - }, - "HlsId3SegmentTagging": { - "type": "string" - }, - "IFrameOnlyPlaylists": { - "type": "string" - }, - "IncompleteSegmentBehavior": { - "type": "string" - }, - "IndexNSegments": { - "type": "integer" - }, - "InputLossAction": { - "type": "string" - }, - "IvInManifest": { - "type": "string" - }, - "IvSource": { - "type": "string" - }, - "KeepSegments": { - "type": "integer" - }, - "KeyFormat": { - "type": "string" - }, - "KeyFormatVersions": { - "type": "string" - }, - "KeyProviderSettings": { - "$ref": "#/definitions/KeyProviderSettings" - }, - "ManifestCompression": { - "type": "string" - }, - "ManifestDurationFormat": { - "type": "string" - }, - "MinSegmentLength": { - "type": "integer" - }, - "Mode": { - "type": "string" - }, - "OutputSelection": { - "type": "string" - }, - "ProgramDateTime": { - "type": "string" - }, - "ProgramDateTimeClock": { - "type": "string" - }, - "ProgramDateTimePeriod": { - "type": "integer" - }, - "RedundantManifest": { - "type": "string" - }, - "SegmentLength": { - "type": "integer" - }, - "SegmentationMode": { - "type": "string" - }, - "SegmentsPerSubdirectory": { - "type": "integer" - }, - "StreamInfResolution": { - "type": "string" - }, - "TimedMetadataId3Frame": { - "type": "string" - }, - "TimedMetadataId3Period": { - "type": "integer" - }, - "TimestampDeltaMilliseconds": { - "type": "integer" - }, - "TsFileMode": { - "type": "string" - } - }, - "type": "object" - }, - "HlsInputSettings": { - "additionalProperties": false, - "properties": { - "Bandwidth": { - "type": "integer" - }, - "BufferSegments": { - "type": "integer" - }, - "Retries": { - "type": "integer" - }, - "RetryInterval": { - "type": "integer" - }, - "Scte35Source": { - "type": "string" - } - }, - "type": "object" - }, - "HlsMediaStoreSettings": { - "additionalProperties": false, - "properties": { - "ConnectionRetryInterval": { - "type": "integer" - }, - "FilecacheDuration": { - "type": "integer" - }, - "MediaStoreStorageClass": { - "type": "string" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - } - }, - "type": "object" - }, - "HlsOutputSettings": { - "additionalProperties": false, - "properties": { - "H265PackagingType": { - "type": "string" - }, - "HlsSettings": { - "$ref": "#/definitions/HlsSettings" - }, - "NameModifier": { - "type": "string" - }, - "SegmentModifier": { - "type": "string" - } - }, - "type": "object" - }, - "HlsS3Settings": { - "additionalProperties": false, - "properties": { - "CannedAcl": { - "type": "string" - } - }, - "type": "object" - }, - "HlsSettings": { - "additionalProperties": false, - "properties": { - "AudioOnlyHlsSettings": { - "$ref": "#/definitions/AudioOnlyHlsSettings" - }, - "Fmp4HlsSettings": { - "$ref": "#/definitions/Fmp4HlsSettings" - }, - "FrameCaptureHlsSettings": { - "$ref": "#/definitions/FrameCaptureHlsSettings" - }, - "StandardHlsSettings": { - "$ref": "#/definitions/StandardHlsSettings" - } - }, - "type": "object" - }, - "HlsWebdavSettings": { - "additionalProperties": false, - "properties": { - "ConnectionRetryInterval": { - "type": "integer" - }, - "FilecacheDuration": { - "type": "integer" - }, - "HttpTransferMode": { - "type": "string" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - } - }, - "type": "object" - }, - "HtmlMotionGraphicsSettings": { - "additionalProperties": false, - "type": "object" - }, - "InputAttachment": { - "additionalProperties": false, - "properties": { - "AutomaticInputFailoverSettings": { - "$ref": "#/definitions/AutomaticInputFailoverSettings" - }, - "InputAttachmentName": { - "type": "string" - }, - "InputId": { - "type": "string" - }, - "InputSettings": { - "$ref": "#/definitions/InputSettings" - } - }, - "type": "object" - }, - "InputChannelLevel": { - "additionalProperties": false, - "properties": { - "Gain": { - "type": "integer" - }, - "InputChannel": { - "type": "integer" - } - }, - "type": "object" - }, - "InputLocation": { - "additionalProperties": false, - "properties": { - "PasswordParam": { - "type": "string" - }, - "Uri": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, - "InputLossBehavior": { - "additionalProperties": false, - "properties": { - "BlackFrameMsec": { - "type": "integer" - }, - "InputLossImageColor": { - "type": "string" - }, - "InputLossImageSlate": { - "$ref": "#/definitions/InputLocation" - }, - "InputLossImageType": { - "type": "string" - }, - "RepeatFrameMsec": { - "type": "integer" - } - }, - "type": "object" - }, - "InputLossFailoverSettings": { - "additionalProperties": false, - "properties": { - "InputLossThresholdMsec": { - "type": "integer" - } - }, - "type": "object" - }, - "InputSettings": { - "additionalProperties": false, - "properties": { - "AudioSelectors": { - "items": { - "$ref": "#/definitions/AudioSelector" - }, - "type": "array", - "uniqueItems": false - }, - "CaptionSelectors": { - "items": { - "$ref": "#/definitions/CaptionSelector" - }, - "type": "array", - "uniqueItems": false - }, - "DeblockFilter": { - "type": "string" - }, - "DenoiseFilter": { - "type": "string" - }, - "FilterStrength": { - "type": "integer" - }, - "InputFilter": { - "type": "string" - }, - "NetworkInputSettings": { - "$ref": "#/definitions/NetworkInputSettings" - }, - "Scte35Pid": { - "type": "integer" - }, - "Smpte2038DataPreference": { - "type": "string" - }, - "SourceEndBehavior": { - "type": "string" - }, - "VideoSelector": { - "$ref": "#/definitions/VideoSelector" - } - }, - "type": "object" - }, - "InputSpecification": { - "additionalProperties": false, - "properties": { - "Codec": { - "type": "string" - }, - "MaximumBitrate": { - "type": "string" - }, - "Resolution": { - "type": "string" - } - }, - "type": "object" - }, - "KeyProviderSettings": { - "additionalProperties": false, - "properties": { - "StaticKeySettings": { - "$ref": "#/definitions/StaticKeySettings" - } - }, - "type": "object" - }, - "M2tsSettings": { - "additionalProperties": false, - "properties": { - "AbsentInputAudioBehavior": { - "type": "string" - }, - "Arib": { - "type": "string" - }, - "AribCaptionsPid": { - "type": "string" - }, - "AribCaptionsPidControl": { - "type": "string" - }, - "AudioBufferModel": { - "type": "string" - }, - "AudioFramesPerPes": { - "type": "integer" - }, - "AudioPids": { - "type": "string" - }, - "AudioStreamType": { - "type": "string" - }, - "Bitrate": { - "type": "integer" - }, - "BufferModel": { - "type": "string" - }, - "CcDescriptor": { - "type": "string" - }, - "DvbNitSettings": { - "$ref": "#/definitions/DvbNitSettings" - }, - "DvbSdtSettings": { - "$ref": "#/definitions/DvbSdtSettings" - }, - "DvbSubPids": { - "type": "string" - }, - "DvbTdtSettings": { - "$ref": "#/definitions/DvbTdtSettings" - }, - "DvbTeletextPid": { - "type": "string" - }, - "Ebif": { - "type": "string" - }, - "EbpAudioInterval": { - "type": "string" - }, - "EbpLookaheadMs": { - "type": "integer" - }, - "EbpPlacement": { - "type": "string" - }, - "EcmPid": { - "type": "string" - }, - "EsRateInPes": { - "type": "string" - }, - "EtvPlatformPid": { - "type": "string" - }, - "EtvSignalPid": { - "type": "string" - }, - "FragmentTime": { - "type": "number" - }, - "Klv": { - "type": "string" - }, - "KlvDataPids": { - "type": "string" - }, - "NielsenId3Behavior": { - "type": "string" - }, - "NullPacketBitrate": { - "type": "number" - }, - "PatInterval": { - "type": "integer" - }, - "PcrControl": { - "type": "string" - }, - "PcrPeriod": { - "type": "integer" - }, - "PcrPid": { - "type": "string" - }, - "PmtInterval": { - "type": "integer" - }, - "PmtPid": { - "type": "string" - }, - "ProgramNum": { - "type": "integer" - }, - "RateMode": { - "type": "string" - }, - "Scte27Pids": { - "type": "string" - }, - "Scte35Control": { - "type": "string" - }, - "Scte35Pid": { - "type": "string" - }, - "Scte35PrerollPullupMilliseconds": { - "type": "number" - }, - "SegmentationMarkers": { - "type": "string" - }, - "SegmentationStyle": { - "type": "string" - }, - "SegmentationTime": { - "type": "number" - }, - "TimedMetadataBehavior": { - "type": "string" - }, - "TimedMetadataPid": { - "type": "string" - }, - "TransportStreamId": { - "type": "integer" - }, - "VideoPid": { - "type": "string" - } - }, - "type": "object" - }, - "M3u8Settings": { - "additionalProperties": false, - "properties": { - "AudioFramesPerPes": { - "type": "integer" - }, - "AudioPids": { - "type": "string" - }, - "EcmPid": { - "type": "string" - }, - "KlvBehavior": { - "type": "string" - }, - "KlvDataPids": { - "type": "string" - }, - "NielsenId3Behavior": { - "type": "string" - }, - "PatInterval": { - "type": "integer" - }, - "PcrControl": { - "type": "string" - }, - "PcrPeriod": { - "type": "integer" - }, - "PcrPid": { - "type": "string" - }, - "PmtInterval": { - "type": "integer" - }, - "PmtPid": { - "type": "string" - }, - "ProgramNum": { - "type": "integer" - }, - "Scte35Behavior": { - "type": "string" - }, - "Scte35Pid": { - "type": "string" - }, - "TimedMetadataBehavior": { - "type": "string" - }, - "TimedMetadataPid": { - "type": "string" - }, - "TransportStreamId": { - "type": "integer" - }, - "VideoPid": { - "type": "string" - } - }, - "type": "object" - }, - "MaintenanceCreateSettings": { - "additionalProperties": false, - "properties": { - "MaintenanceDay": { - "type": "string" - }, - "MaintenanceStartTime": { - "type": "string" - } - }, - "type": "object" - }, - "MediaPackageGroupSettings": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - } - }, - "type": "object" - }, - "MediaPackageOutputDestinationSettings": { - "additionalProperties": false, - "properties": { - "ChannelId": { - "type": "string" - } - }, - "type": "object" - }, - "MediaPackageOutputSettings": { - "additionalProperties": false, - "type": "object" - }, - "MotionGraphicsConfiguration": { - "additionalProperties": false, - "properties": { - "MotionGraphicsInsertion": { - "type": "string" - }, - "MotionGraphicsSettings": { - "$ref": "#/definitions/MotionGraphicsSettings" - } - }, - "type": "object" - }, - "MotionGraphicsSettings": { - "additionalProperties": false, - "properties": { - "HtmlMotionGraphicsSettings": { - "$ref": "#/definitions/HtmlMotionGraphicsSettings" - } - }, - "type": "object" - }, - "Mp2Settings": { - "additionalProperties": false, - "properties": { - "Bitrate": { - "type": "number" - }, - "CodingMode": { - "type": "string" - }, - "SampleRate": { - "type": "number" - } - }, - "type": "object" - }, - "Mpeg2FilterSettings": { - "additionalProperties": false, - "properties": { - "TemporalFilterSettings": { - "$ref": "#/definitions/TemporalFilterSettings" - } - }, - "type": "object" - }, - "Mpeg2Settings": { - "additionalProperties": false, - "properties": { - "AdaptiveQuantization": { - "type": "string" - }, - "AfdSignaling": { - "type": "string" - }, - "ColorMetadata": { - "type": "string" - }, - "ColorSpace": { - "type": "string" - }, - "DisplayAspectRatio": { - "type": "string" - }, - "FilterSettings": { - "$ref": "#/definitions/Mpeg2FilterSettings" - }, - "FixedAfd": { - "type": "string" - }, - "FramerateDenominator": { - "type": "integer" - }, - "FramerateNumerator": { - "type": "integer" - }, - "GopClosedCadence": { - "type": "integer" - }, - "GopNumBFrames": { - "type": "integer" - }, - "GopSize": { - "type": "number" - }, - "GopSizeUnits": { - "type": "string" - }, - "ScanType": { - "type": "string" - }, - "SubgopLength": { - "type": "string" - }, - "TimecodeBurninSettings": { - "$ref": "#/definitions/TimecodeBurninSettings" - }, - "TimecodeInsertion": { - "type": "string" - } - }, - "type": "object" - }, - "MsSmoothGroupSettings": { - "additionalProperties": false, - "properties": { - "AcquisitionPointId": { - "type": "string" - }, - "AudioOnlyTimecodeControl": { - "type": "string" - }, - "CertificateMode": { - "type": "string" - }, - "ConnectionRetryInterval": { - "type": "integer" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "EventId": { - "type": "string" - }, - "EventIdMode": { - "type": "string" - }, - "EventStopBehavior": { - "type": "string" - }, - "FilecacheDuration": { - "type": "integer" - }, - "FragmentLength": { - "type": "integer" - }, - "InputLossAction": { - "type": "string" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - }, - "SegmentationMode": { - "type": "string" - }, - "SendDelayMs": { - "type": "integer" - }, - "SparseTrackType": { - "type": "string" - }, - "StreamManifestBehavior": { - "type": "string" - }, - "TimestampOffset": { - "type": "string" - }, - "TimestampOffsetMode": { - "type": "string" - } - }, - "type": "object" - }, - "MsSmoothOutputSettings": { - "additionalProperties": false, - "properties": { - "H265PackagingType": { - "type": "string" - }, - "NameModifier": { - "type": "string" - } - }, - "type": "object" - }, - "MultiplexGroupSettings": { - "additionalProperties": false, - "type": "object" - }, - "MultiplexOutputSettings": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - } - }, - "type": "object" - }, - "MultiplexProgramChannelDestinationSettings": { - "additionalProperties": false, - "properties": { - "MultiplexId": { - "type": "string" - }, - "ProgramName": { - "type": "string" - } - }, - "type": "object" - }, - "NetworkInputSettings": { - "additionalProperties": false, - "properties": { - "HlsInputSettings": { - "$ref": "#/definitions/HlsInputSettings" - }, - "ServerValidation": { - "type": "string" - } - }, - "type": "object" - }, - "NielsenCBET": { - "additionalProperties": false, - "properties": { - "CbetCheckDigitString": { - "type": "string" - }, - "CbetStepaside": { - "type": "string" - }, - "Csid": { - "type": "string" - } - }, - "type": "object" - }, - "NielsenConfiguration": { - "additionalProperties": false, - "properties": { - "DistributorId": { - "type": "string" - }, - "NielsenPcmToId3Tagging": { - "type": "string" - } - }, - "type": "object" - }, - "NielsenNaesIiNw": { - "additionalProperties": false, - "properties": { - "CheckDigitString": { - "type": "string" - }, - "Sid": { - "type": "number" - }, - "Timezone": { - "type": "string" - } - }, - "type": "object" - }, - "NielsenWatermarksSettings": { - "additionalProperties": false, - "properties": { - "NielsenCbetSettings": { - "$ref": "#/definitions/NielsenCBET" - }, - "NielsenDistributionType": { - "type": "string" - }, - "NielsenNaesIiNwSettings": { - "$ref": "#/definitions/NielsenNaesIiNw" - } - }, - "type": "object" - }, - "Output": { - "additionalProperties": false, - "properties": { - "AudioDescriptionNames": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "CaptionDescriptionNames": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "OutputName": { - "type": "string" - }, - "OutputSettings": { - "$ref": "#/definitions/OutputSettings" - }, - "VideoDescriptionName": { - "type": "string" - } - }, - "type": "object" - }, - "OutputDestination": { - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" - }, - "MediaPackageSettings": { - "items": { - "$ref": "#/definitions/MediaPackageOutputDestinationSettings" - }, - "type": "array", - "uniqueItems": false - }, - "MultiplexSettings": { - "$ref": "#/definitions/MultiplexProgramChannelDestinationSettings" - }, - "Settings": { - "items": { - "$ref": "#/definitions/OutputDestinationSettings" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "OutputDestinationSettings": { - "additionalProperties": false, - "properties": { - "PasswordParam": { - "type": "string" - }, - "StreamName": { - "type": "string" - }, - "Url": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, - "OutputGroup": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "OutputGroupSettings": { - "$ref": "#/definitions/OutputGroupSettings" - }, - "Outputs": { - "items": { - "$ref": "#/definitions/Output" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "OutputGroupSettings": { - "additionalProperties": false, - "properties": { - "ArchiveGroupSettings": { - "$ref": "#/definitions/ArchiveGroupSettings" - }, - "FrameCaptureGroupSettings": { - "$ref": "#/definitions/FrameCaptureGroupSettings" - }, - "HlsGroupSettings": { - "$ref": "#/definitions/HlsGroupSettings" - }, - "MediaPackageGroupSettings": { - "$ref": "#/definitions/MediaPackageGroupSettings" - }, - "MsSmoothGroupSettings": { - "$ref": "#/definitions/MsSmoothGroupSettings" - }, - "MultiplexGroupSettings": { - "$ref": "#/definitions/MultiplexGroupSettings" - }, - "RtmpGroupSettings": { - "$ref": "#/definitions/RtmpGroupSettings" - }, - "UdpGroupSettings": { - "$ref": "#/definitions/UdpGroupSettings" - } - }, - "type": "object" - }, - "OutputLocationRef": { - "additionalProperties": false, - "properties": { - "DestinationRefId": { - "type": "string" - } - }, - "type": "object" - }, - "OutputLockingSettings": { - "additionalProperties": false, - "properties": { - "EpochLockingSettings": { - "$ref": "#/definitions/EpochLockingSettings" - }, - "PipelineLockingSettings": { - "$ref": "#/definitions/PipelineLockingSettings" - } - }, - "type": "object" - }, - "OutputSettings": { - "additionalProperties": false, - "properties": { - "ArchiveOutputSettings": { - "$ref": "#/definitions/ArchiveOutputSettings" - }, - "FrameCaptureOutputSettings": { - "$ref": "#/definitions/FrameCaptureOutputSettings" - }, - "HlsOutputSettings": { - "$ref": "#/definitions/HlsOutputSettings" - }, - "MediaPackageOutputSettings": { - "$ref": "#/definitions/MediaPackageOutputSettings" - }, - "MsSmoothOutputSettings": { - "$ref": "#/definitions/MsSmoothOutputSettings" - }, - "MultiplexOutputSettings": { - "$ref": "#/definitions/MultiplexOutputSettings" - }, - "RtmpOutputSettings": { - "$ref": "#/definitions/RtmpOutputSettings" - }, - "UdpOutputSettings": { - "$ref": "#/definitions/UdpOutputSettings" - } - }, - "type": "object" - }, - "PassThroughSettings": { - "additionalProperties": false, - "type": "object" - }, - "PipelineLockingSettings": { - "additionalProperties": false, - "type": "object" - }, - "RawSettings": { - "additionalProperties": false, - "type": "object" - }, - "Rec601Settings": { - "additionalProperties": false, - "type": "object" - }, - "Rec709Settings": { - "additionalProperties": false, - "type": "object" - }, - "RemixSettings": { - "additionalProperties": false, - "properties": { - "ChannelMappings": { - "items": { - "$ref": "#/definitions/AudioChannelMapping" - }, - "type": "array", - "uniqueItems": false - }, - "ChannelsIn": { - "type": "integer" - }, - "ChannelsOut": { - "type": "integer" - } - }, - "type": "object" - }, - "RtmpCaptionInfoDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "RtmpGroupSettings": { - "additionalProperties": false, - "properties": { - "AdMarkers": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "AuthenticationScheme": { - "type": "string" - }, - "CacheFullBehavior": { - "type": "string" - }, - "CacheLength": { - "type": "integer" - }, - "CaptionData": { - "type": "string" - }, - "IncludeFillerNalUnits": { - "type": "string" - }, - "InputLossAction": { - "type": "string" - }, - "RestartDelay": { - "type": "integer" - } - }, - "type": "object" - }, - "RtmpOutputSettings": { - "additionalProperties": false, - "properties": { - "CertificateMode": { - "type": "string" - }, - "ConnectionRetryInterval": { - "type": "integer" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "NumRetries": { - "type": "integer" - } - }, - "type": "object" - }, - "Scte20PlusEmbeddedDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "Scte20SourceSettings": { - "additionalProperties": false, - "properties": { - "Convert608To708": { - "type": "string" - }, - "Source608ChannelNumber": { - "type": "integer" - } - }, - "type": "object" - }, - "Scte27DestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "Scte27SourceSettings": { - "additionalProperties": false, - "properties": { - "OcrLanguage": { - "type": "string" - }, - "Pid": { - "type": "integer" - } - }, - "type": "object" - }, - "Scte35SpliceInsert": { - "additionalProperties": false, - "properties": { - "AdAvailOffset": { - "type": "integer" - }, - "NoRegionalBlackoutFlag": { - "type": "string" - }, - "WebDeliveryAllowedFlag": { - "type": "string" - } - }, - "type": "object" - }, - "Scte35TimeSignalApos": { - "additionalProperties": false, - "properties": { - "AdAvailOffset": { - "type": "integer" - }, - "NoRegionalBlackoutFlag": { - "type": "string" - }, - "WebDeliveryAllowedFlag": { - "type": "string" - } - }, - "type": "object" - }, - "SmpteTtDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "StandardHlsSettings": { - "additionalProperties": false, - "properties": { - "AudioRenditionSets": { - "type": "string" - }, - "M3u8Settings": { - "$ref": "#/definitions/M3u8Settings" - } - }, - "type": "object" - }, - "StaticKeySettings": { - "additionalProperties": false, - "properties": { - "KeyProviderServer": { - "$ref": "#/definitions/InputLocation" - }, - "StaticKeyValue": { - "type": "string" - } - }, - "type": "object" - }, - "TeletextDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "TeletextSourceSettings": { - "additionalProperties": false, - "properties": { - "OutputRectangle": { - "$ref": "#/definitions/CaptionRectangle" - }, - "PageNumber": { - "type": "string" - } - }, - "type": "object" - }, - "TemporalFilterSettings": { - "additionalProperties": false, - "properties": { - "PostFilterSharpening": { - "type": "string" - }, - "Strength": { - "type": "string" - } - }, - "type": "object" - }, - "ThumbnailConfiguration": { - "additionalProperties": false, - "properties": { - "State": { - "type": "string" - } - }, - "type": "object" - }, - "TimecodeBurninSettings": { - "additionalProperties": false, - "properties": { - "FontSize": { - "type": "string" - }, - "Position": { - "type": "string" - }, - "Prefix": { - "type": "string" - } - }, - "type": "object" - }, - "TimecodeConfig": { - "additionalProperties": false, - "properties": { - "Source": { - "type": "string" - }, - "SyncThreshold": { - "type": "integer" - } - }, - "type": "object" - }, - "TtmlDestinationSettings": { - "additionalProperties": false, - "properties": { - "StyleControl": { - "type": "string" - } - }, - "type": "object" - }, - "UdpContainerSettings": { - "additionalProperties": false, - "properties": { - "M2tsSettings": { - "$ref": "#/definitions/M2tsSettings" - } - }, - "type": "object" - }, - "UdpGroupSettings": { - "additionalProperties": false, - "properties": { - "InputLossAction": { - "type": "string" - }, - "TimedMetadataId3Frame": { - "type": "string" - }, - "TimedMetadataId3Period": { - "type": "integer" - } - }, - "type": "object" - }, - "UdpOutputSettings": { - "additionalProperties": false, - "properties": { - "BufferMsec": { - "type": "integer" - }, - "ContainerSettings": { - "$ref": "#/definitions/UdpContainerSettings" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "FecOutputSettings": { - "$ref": "#/definitions/FecOutputSettings" - } - }, - "type": "object" - }, - "VideoBlackFailoverSettings": { - "additionalProperties": false, - "properties": { - "BlackDetectThreshold": { - "type": "number" - }, - "VideoBlackThresholdMsec": { - "type": "integer" - } - }, - "type": "object" - }, - "VideoCodecSettings": { - "additionalProperties": false, - "properties": { - "FrameCaptureSettings": { - "$ref": "#/definitions/FrameCaptureSettings" - }, - "H264Settings": { - "$ref": "#/definitions/H264Settings" - }, - "H265Settings": { - "$ref": "#/definitions/H265Settings" - }, - "Mpeg2Settings": { - "$ref": "#/definitions/Mpeg2Settings" - } - }, - "type": "object" - }, - "VideoDescription": { - "additionalProperties": false, - "properties": { - "CodecSettings": { - "$ref": "#/definitions/VideoCodecSettings" - }, - "Height": { - "type": "integer" - }, - "Name": { - "type": "string" - }, - "RespondToAfd": { - "type": "string" - }, - "ScalingBehavior": { - "type": "string" - }, - "Sharpness": { - "type": "integer" - }, - "Width": { - "type": "integer" - } - }, - "type": "object" - }, - "VideoSelector": { - "additionalProperties": false, - "properties": { - "ColorSpace": { - "type": "string" - }, - "ColorSpaceSettings": { - "$ref": "#/definitions/VideoSelectorColorSpaceSettings" - }, - "ColorSpaceUsage": { - "type": "string" - }, - "SelectorSettings": { - "$ref": "#/definitions/VideoSelectorSettings" - } - }, - "type": "object" - }, - "VideoSelectorColorSpaceSettings": { - "additionalProperties": false, - "properties": { - "Hdr10Settings": { - "$ref": "#/definitions/Hdr10Settings" - } - }, - "type": "object" - }, - "VideoSelectorPid": { - "additionalProperties": false, - "properties": { - "Pid": { - "type": "integer" - } - }, - "type": "object" - }, - "VideoSelectorProgramId": { - "additionalProperties": false, - "properties": { - "ProgramId": { - "type": "integer" - } - }, - "type": "object" - }, - "VideoSelectorSettings": { - "additionalProperties": false, - "properties": { - "VideoSelectorPid": { - "$ref": "#/definitions/VideoSelectorPid" - }, - "VideoSelectorProgramId": { - "$ref": "#/definitions/VideoSelectorProgramId" - } - }, - "type": "object" - }, - "VpcOutputSettings": { - "additionalProperties": false, - "properties": { - "PublicAddressAllocationIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "WavSettings": { - "additionalProperties": false, - "properties": { - "BitDepth": { - "type": "number" - }, - "CodingMode": { - "type": "string" - }, - "SampleRate": { - "type": "number" - } - }, - "type": "object" - }, - "WebvttDestinationSettings": { - "additionalProperties": false, - "properties": { - "StyleControl": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::MediaLive::Channel", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "type": "string" - }, - "CdiInputSpecification": { - "$ref": "#/definitions/CdiInputSpecification" - }, - "ChannelClass": { - "type": "string" - }, - "Destinations": { - "items": { - "$ref": "#/definitions/OutputDestination" - }, - "type": "array", - "uniqueItems": false - }, - "EncoderSettings": { - "$ref": "#/definitions/EncoderSettings" - }, - "Id": { - "type": "string" - }, - "InputAttachments": { - "items": { - "$ref": "#/definitions/InputAttachment" - }, - "type": "array", - "uniqueItems": false - }, - "InputSpecification": { - "$ref": "#/definitions/InputSpecification" - }, - "Inputs": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "LogLevel": { - "type": "string" - }, - "Maintenance": { - "$ref": "#/definitions/MaintenanceCreateSettings" - }, - "Name": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "Tags": { - "type": "object" - }, - "Vpc": { - "$ref": "#/definitions/VpcOutputSettings" - } - }, - "readOnlyProperties": [ - "/properties/Inputs", - "/properties/Id", - "/properties/Arn" - ], - "typeName": "AWS::MediaLive::Channel" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-memorydb-acl.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-memorydb-acl.json deleted file mode 100644 index cef6cec217..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-memorydb-acl.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ACLName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "description": "A key-value pair to associate with a resource.", - "properties": { - "Key": { - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with 'aws:'. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 128, - "minLength": 1, - "pattern": "^(?!aws:)[a-zA-Z0-9 _\\.\\/=+:\\-@]*$", - "type": "string" - }, - "Value": { - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 256, - "minLength": 0, - "pattern": "^[a-zA-Z0-9 _\\.\\/=+:\\-@]*$", - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::MemoryDB::ACL", - "handlers": { - "create": { - "permissions": [ - "memorydb:CreateACL", - "memorydb:DescribeACLs", - "memorydb:TagResource", - "memorydb:ListTags" - ] - }, - "delete": { - "permissions": [ - "memorydb:ModifyReplicationGroup", - "memorydb:DeleteACL", - "memorydb:DescribeACLs" - ] - }, - "list": { - "permissions": [ - "memorydb:DescribeACLs", - "memorydb:ListTags" - ] - }, - "read": { - "permissions": [ - "memorydb:DescribeACLs", - "memorydb:ListTags" - ] - }, - "update": { - "permissions": [ - "memorydb:UpdateACL", - "memorydb:DescribeACLs", - "memorydb:ListTags", - "memorydb:TagResource", - "memorydb:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ACLName" - ], - "properties": { - "ACLName": { - "description": "The name of the acl.", - "pattern": "[a-z][a-z0-9\\\\-]*", - "type": "string" - }, - "Arn": { - "description": "The Amazon Resource Name (ARN) of the acl.", - "type": "string" - }, - "Status": { - "description": "Indicates acl status. Can be \"creating\", \"active\", \"modifying\", \"deleting\".", - "type": "string" - }, - "Tags": { - "description": "An array of key-value pairs to apply to this cluster.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "UserNames": { - "$comment": "List of users.", - "description": "List of users associated to this acl.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Status", - "/properties/Arn" - ], - "required": [ - "ACLName" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-memorydb", - "taggable": true, - "typeName": "AWS::MemoryDB::ACL" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-memorydb-parametergroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-memorydb-parametergroup.json deleted file mode 100644 index ed84a0204e..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-memorydb-parametergroup.json +++ /dev/null @@ -1,121 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ParameterGroupName", - "/properties/Family", - "/properties/Description" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "description": "A key-value pair to associate with a resource.", - "properties": { - "Key": { - "description": "The key for the tag. May not be null.", - "maxLength": 128, - "minLength": 1, - "pattern": "^(?!aws:)(?!memorydb:)[a-zA-Z0-9 _\\.\\/=+:\\-@]{1,128}$", - "type": "string" - }, - "Value": { - "description": "The tag's value. May be null.", - "maxLength": 256, - "minLength": 1, - "pattern": "^(?!aws:)(?!memorydb:)[a-zA-Z0-9 _\\.\\/=+:\\-@]{1,256}$", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "The AWS::MemoryDB::ParameterGroup resource creates an Amazon MemoryDB ParameterGroup.", - "handlers": { - "create": { - "permissions": [ - "memorydb:CreateParameterGroup", - "memorydb:DescribeParameterGroups", - "memorydb:TagResource", - "memorydb:ListTags" - ] - }, - "delete": { - "permissions": [ - "memorydb:DeleteParameterGroup" - ] - }, - "list": { - "permissions": [ - "memorydb:DescribeParameterGroups" - ] - }, - "read": { - "permissions": [ - "memorydb:DescribeParameterGroups", - "memorydb:ListTags" - ] - }, - "update": { - "permissions": [ - "memorydb:UpdateParameterGroup", - "memorydb:DescribeParameterGroups", - "memorydb:DescribeParameters", - "memorydb:DescribeClusters", - "memorydb:ListTags", - "memorydb:TagResource", - "memorydb:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ParameterGroupName" - ], - "properties": { - "ARN": { - "description": "The Amazon Resource Name (ARN) of the parameter group.", - "type": "string" - }, - "Description": { - "description": "A description of the parameter group.", - "type": "string" - }, - "Family": { - "description": "The name of the parameter group family that this parameter group is compatible with.", - "type": "string" - }, - "ParameterGroupName": { - "description": "The name of the parameter group.", - "type": "string" - }, - "Parameters": { - "description": "An map of parameter names and values for the parameter update. You must supply at least one parameter name and value; subsequent arguments are optional.", - "type": "object" - }, - "Tags": { - "description": "An array of key-value pairs to apply to this parameter group.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/ARN" - ], - "required": [ - "ParameterGroupName", - "Family" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-memorydb", - "taggable": true, - "typeName": "AWS::MemoryDB::ParameterGroup", - "writeOnlyProperties": [ - "/properties/Parameters" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-memorydb-subnetgroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-memorydb-subnetgroup.json deleted file mode 100644 index 7a6449202d..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-memorydb-subnetgroup.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SubnetGroupName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "description": "A key-value pair to associate with a resource.", - "properties": { - "Key": { - "description": "The key for the tag. May not be null.", - "maxLength": 128, - "minLength": 1, - "pattern": "^(?!aws:)(?!memorydb:)[a-zA-Z0-9 _\\.\\/=+:\\-@]{1,128}$", - "type": "string" - }, - "Value": { - "description": "The tag's value. May be null.", - "maxLength": 256, - "minLength": 1, - "pattern": "^(?!aws:)(?!memorydb:)[a-zA-Z0-9 _\\.\\/=+:\\-@]{1,256}$", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "The AWS::MemoryDB::SubnetGroup resource creates an Amazon MemoryDB Subnet Group.", - "handlers": { - "create": { - "permissions": [ - "memorydb:CreateSubnetGroup", - "memorydb:DescribeSubnetGroups", - "memorydb:TagResource", - "memorydb:ListTags" - ] - }, - "delete": { - "permissions": [ - "memorydb:DeleteSubnetGroup", - "memorydb:DescribeSubnetGroups" - ] - }, - "list": { - "permissions": [ - "memorydb:DescribeSubnetGroups" - ] - }, - "read": { - "permissions": [ - "memorydb:DescribeSubnetGroups", - "memorydb:ListTags" - ] - }, - "update": { - "permissions": [ - "memorydb:UpdateSubnetGroup", - "memorydb:DescribeSubnetGroups", - "memorydb:ListTags", - "memorydb:TagResource", - "memorydb:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/SubnetGroupName" - ], - "properties": { - "ARN": { - "description": "The Amazon Resource Name (ARN) of the subnet group.", - "type": "string" - }, - "Description": { - "description": "An optional description of the subnet group.", - "type": "string" - }, - "SubnetGroupName": { - "description": "The name of the subnet group. This value must be unique as it also serves as the subnet group identifier.", - "pattern": "[a-z][a-z0-9\\-]*", - "type": "string" - }, - "SubnetIds": { - "description": "A list of VPC subnet IDs for the subnet group.", - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "description": "An array of key-value pairs to apply to this subnet group.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/ARN" - ], - "required": [ - "SubnetGroupName", - "SubnetIds" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-memorydb", - "taggable": true, - "typeName": "AWS::MemoryDB::SubnetGroup" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-route53resolver-resolverconfig.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-route53resolver-resolverconfig.json deleted file mode 100644 index 33f4996fbd..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-route53resolver-resolverconfig.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ResourceId", - "/properties/AutodefinedReverseFlag" - ], - "description": "Resource schema for AWS::Route53Resolver::ResolverConfig.", - "handlers": { - "create": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "delete": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "list": { - "permissions": [ - "route53resolver:ListResolverConfigs" - ] - }, - "read": { - "permissions": [ - "route53resolver:GetResolverConfig" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AutodefinedReverse": { - "description": "ResolverAutodefinedReverseStatus, possible values are ENABLING, ENABLED, DISABLING AND DISABLED.", - "enum": [ - "ENABLING", - "ENABLED", - "DISABLING", - "DISABLED" - ], - "type": "string" - }, - "AutodefinedReverseFlag": { - "description": "Represents the desired status of AutodefinedReverse. The only supported value on creation is DISABLE. Deletion of this resource will return AutodefinedReverse to its default value (ENABLED).", - "enum": [ - "DISABLE" - ], - "type": "string" - }, - "Id": { - "description": "Id", - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "OwnerId": { - "description": "AccountId", - "maxLength": 32, - "minLength": 12, - "type": "string" - }, - "ResourceId": { - "description": "ResourceId", - "maxLength": 64, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/OwnerId", - "/properties/Id", - "/properties/AutodefinedReverse" - ], - "required": [ - "ResourceId", - "AutodefinedReverseFlag" - ], - "taggable": false, - "typeName": "AWS::Route53Resolver::ResolverConfig" -} 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 708e7cdaac..0dc08da645 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py @@ -7,6 +7,7 @@ "AWS::ApiGatewayV2::Integration", "AWS::Pinpoint::App", "AWS::ApiGatewayV2::ApiMapping", + "AWS::CE::AnomalySubscription", "AWS::Shield::DRTAccess", "AWS::SSO::Assignment", "AWS::Glue::Partition", @@ -273,6 +274,7 @@ "AWS::GuardDuty::Member", "AWS::GroundStation::MissionProfile", "AWS::CloudFormation::CustomResource", + "AWS::FIS::TargetAccountConfiguration", "AWS::RefactorSpaces::Route", "AWS::KinesisAnalytics::ApplicationOutput", "AWS::WAFv2::RuleGroup", @@ -540,6 +542,7 @@ "AWS::ServiceCatalog::AcceptedPortfolioShare", "AWS::Route53Resolver::FirewallRuleGroupAssociation", "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", "AWS::EC2::Subnet", "AWS::CloudTrail::ResourcePolicy", "AWS::IoTTwinMaker::ComponentType", @@ -773,6 +776,7 @@ "AWS::Greengrass::SubscriptionDefinitionVersion", "AWS::AppConfig::Extension", "AWS::Lex::ResourcePolicy", + "AWS::OSIS::Pipeline", "AWS::ElasticLoadBalancingV2::ListenerRule", "AWS::ElasticLoadBalancingV2::TrustStore", "AWS::Glue::Registry", @@ -922,6 +926,7 @@ "AWS::SageMaker::MonitoringSchedule", "AWS::IAM::OIDCProvider", "AWS::LakeFormation::Tag", + "AWS::CE::AnomalyMonitor", "AWS::ServiceCatalogAppRegistry::ResourceAssociation", "AWS::EC2::VPNGateway", "AWS::CloudFormation::Stack", @@ -1016,6 +1021,7 @@ "aws-cleanrooms-configuredtableassociation.json", "aws-apigatewayv2-integration.json", "aws-apigatewayv2-apimapping.json", + "aws-ce-anomalysubscription.json", "aws-shield-drtaccess.json", "aws-sso-assignment.json", "aws-glue-partition.json", @@ -1164,7 +1170,6 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", - "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -1189,6 +1194,7 @@ "aws-customerprofiles-integration.json", "aws-workspaces-connectionalias.json", "aws-wafregional-sizeconstraintset.json", + "aws-eventschemas-discoverer.json", "aws-networkmanager-connectpeer.json", "aws-elasticache-usergroup.json", "aws-iot-thinggroup.json", @@ -1232,6 +1238,7 @@ "aws-gamelift-gameservergroup.json", "aws-appstream-stack.json", "aws-ec2-internetgateway.json", + "aws-ec2-gatewayroutetableassociation.json", "aws-wafv2-ipset.json", "aws-mediaconnect-bridgeoutput.json", "aws-greengrass-subscriptiondefinition.json", @@ -1246,6 +1253,7 @@ "aws-codestarnotifications-notificationrule.json", "aws-sagemaker-endpointconfig.json", "aws-appmesh-gatewayroute.json", + "aws-cleanrooms-membership.json", "aws-apigateway-apikey.json", "aws-gamelift-location.json", "aws-networkmanager-transitgatewayroutetableattachment.json", @@ -1261,7 +1269,6 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", - "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-entityresolution-schemamapping.json", "aws-wafregional-xssmatchset.json", @@ -1273,6 +1280,7 @@ "aws-guardduty-member.json", "aws-groundstation-missionprofile.json", "aws-cloudformation-customresource.json", + "aws-fis-targetaccountconfiguration.json", "aws-refactorspaces-route.json", "aws-kinesisanalytics-applicationoutput.json", "aws-sagemaker-modelpackagegroup.json", @@ -1281,11 +1289,9 @@ "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", - "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-sagemaker-inferenceexperiment.json", "aws-cloudformation-stackset.json", - "aws-ec2-route.json", "aws-fis-experimenttemplate.json", "aws-codecommit-repository.json", "aws-cloudformation-hookversion.json", @@ -1328,6 +1334,7 @@ "aws-fms-notificationchannel.json", "aws-msk-batchscramsecret.json", "aws-dms-certificate.json", + "aws-s3-bucket.json", "aws-guardduty-ipset.json", "aws-servicediscovery-httpnamespace.json", "aws-emr-securityconfiguration.json", @@ -1485,7 +1492,6 @@ "aws-connect-tasktemplate.json", "aws-pinpoint-apnssandboxchannel.json", "aws-stepfunctions-statemachineversion.json", - "aws-servicecatalogappregistry-application.json", "aws-networkmanager-site.json", "aws-glue-database.json", "aws-neptune-dbcluster.json", @@ -1529,6 +1535,8 @@ "aws-servicecatalog-acceptedportfolioshare.json", "aws-route53resolver-firewallrulegroupassociation.json", "aws-route53resolver-resolverqueryloggingconfig.json", + "aws-ec2-snapshotblockpublicaccess.json", + "aws-ec2-subnet.json", "aws-cloudtrail-resourcepolicy.json", "aws-iottwinmaker-componenttype.json", "aws-s3objectlambda-accesspoint.json", @@ -1585,7 +1593,6 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", - "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-customerprofiles-eventstream.json", @@ -1634,6 +1641,7 @@ "aws-ssmincidents-responseplan.json", "aws-lambda-layerversionpermission.json", "aws-secretsmanager-secret.json", + "aws-route53resolver-resolverconfig.json", "aws-elasticache-user.json", "aws-sagemaker-image.json", "aws-logs-subscriptionfilter.json", @@ -1708,7 +1716,6 @@ "aws-lightsail-loadbalancertlscertificate.json", "aws-ec2-clientvpntargetnetworkassociation.json", "aws-mediapackagev2-originendpoint.json", - "aws-appsync-graphqlapi.json", "aws-gamelift-matchmakingruleset.json", "aws-ec2-egressonlyinternetgateway.json", "aws-config-conformancepack.json", @@ -1752,6 +1759,7 @@ "aws-greengrass-subscriptiondefinitionversion.json", "aws-appconfig-extension.json", "aws-lex-resourcepolicy.json", + "aws-osis-pipeline.json", "aws-elasticloadbalancingv2-listenerrule.json", "aws-elasticloadbalancingv2-truststore.json", "aws-glue-registry.json", @@ -1893,6 +1901,7 @@ "aws-sagemaker-monitoringschedule.json", "aws-iam-oidcprovider.json", "aws-lakeformation-tag.json", + "aws-ce-anomalymonitor.json", "aws-servicecatalogappregistry-resourceassociation.json", "aws-ec2-vpngateway.json", "aws-cloudformation-stack.json", @@ -1963,7 +1972,6 @@ "aws-rds-dbproxy.json", "aws-pinpoint-apnschannel.json", "aws-rds-dbparametergroup.json", - "aws-securityhub-hub.json", "aws-s3-accesspoint.json", "aws-greengrass-groupversion.json", "aws-pinpoint-smschannel.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-appsync-graphqlapi.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-appsync-graphqlapi.json new file mode 100644 index 0000000000..077c3fd5af --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-appsync-graphqlapi.json @@ -0,0 +1,222 @@ +{ + "additionalProperties": false, + "definitions": { + "AdditionalAuthenticationProvider": { + "additionalProperties": false, + "properties": { + "AuthenticationType": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "UserPoolConfig": { + "$ref": "#/definitions/CognitoUserPoolConfig" + } + }, + "required": [ + "AuthenticationType" + ], + "type": "object" + }, + "CognitoUserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "LambdaAuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsRoleArn": { + "type": "string" + }, + "ExcludeVerboseContent": { + "type": "boolean" + }, + "FieldLogLevel": { + "type": "string" + } + }, + "type": "object" + }, + "OpenIDConnectConfig": { + "additionalProperties": false, + "properties": { + "AuthTTL": { + "type": "number" + }, + "ClientId": { + "type": "string" + }, + "IatTTL": { + "type": "number" + }, + "Issuer": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "UserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "DefaultAction": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AppSync::GraphQLApi", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalAuthenticationProviders": { + "items": { + "$ref": "#/definitions/AdditionalAuthenticationProvider" + }, + "type": "array", + "uniqueItems": false + }, + "ApiId": { + "type": "string" + }, + "ApiType": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "AuthenticationType": { + "enum": [ + "API_KEY", + "AWS_IAM", + "AMAZON_COGNITO_USER_POOLS", + "OPENID_CONNECT", + "AWS_LAMBDA" + ], + "type": "string" + }, + "GraphQLDns": { + "type": "string" + }, + "GraphQLEndpointArn": { + "type": "string" + }, + "GraphQLUrl": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "LogConfig": { + "$ref": "#/definitions/LogConfig" + }, + "MergedApiExecutionRoleArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "OwnerContact": { + "type": "string" + }, + "RealtimeDns": { + "type": "string" + }, + "RealtimeUrl": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UserPoolConfig": { + "$ref": "#/definitions/UserPoolConfig" + }, + "Visibility": { + "type": "string" + }, + "XrayEnabled": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/ApiId", + "/properties/GraphQLEndpointArn", + "/properties/Id", + "/properties/GraphQLDns", + "/properties/GraphQLUrl", + "/properties/RealtimeDns", + "/properties/RealtimeUrl", + "/properties/Arn" + ], + "required": [ + "Name", + "AuthenticationType" + ], + "typeName": "AWS::AppSync::GraphQLApi" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-autoscaling-autoscalinggroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-autoscaling-autoscalinggroup.json index de26c3bdb5..ed22fe13b2 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-autoscaling-autoscalinggroup.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-autoscaling-autoscalinggroup.json @@ -41,6 +41,18 @@ }, "type": "object" }, + "InstanceMaintenancePolicy": { + "additionalProperties": false, + "properties": { + "MaxHealthyPercentage": { + "type": "integer" + }, + "MinHealthyPercentage": { + "type": "integer" + } + }, + "type": "object" + }, "InstanceRequirements": { "additionalProperties": false, "properties": { @@ -527,6 +539,9 @@ "InstanceId": { "type": "string" }, + "InstanceMaintenancePolicy": { + "$ref": "#/definitions/InstanceMaintenancePolicy" + }, "LaunchConfigurationName": { "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-membership.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-membership.json deleted file mode 100644 index 35bb82ba7c..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-membership.json +++ /dev/null @@ -1,232 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CollaborationIdentifier" - ], - "definitions": { - "MembershipProtectedQueryOutputConfiguration": { - "additionalProperties": false, - "properties": { - "S3": { - "$ref": "#/definitions/ProtectedQueryS3OutputConfiguration" - } - }, - "required": [ - "S3" - ], - "type": "object" - }, - "MembershipProtectedQueryResultConfiguration": { - "additionalProperties": false, - "properties": { - "OutputConfiguration": { - "$ref": "#/definitions/MembershipProtectedQueryOutputConfiguration" - }, - "RoleArn": { - "maxLength": 512, - "minLength": 32, - "type": "string" - } - }, - "required": [ - "OutputConfiguration" - ], - "type": "object" - }, - "MembershipQueryLogStatus": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "MembershipStatus": { - "enum": [ - "ACTIVE", - "REMOVED", - "COLLABORATION_DELETED" - ], - "type": "string" - }, - "ProtectedQueryS3OutputConfiguration": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "type": "string" - }, - "KeyPrefix": { - "type": "string" - }, - "ResultFormat": { - "$ref": "#/definitions/ResultFormat" - } - }, - "required": [ - "ResultFormat", - "Bucket" - ], - "type": "object" - }, - "ResultFormat": { - "enum": [ - "CSV", - "PARQUET" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Represents an AWS account that is a part of a collaboration", - "handlers": { - "create": { - "permissions": [ - "cleanrooms:CreateMembership", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:PutResourcePolicy", - "logs:CreateLogGroup", - "cleanrooms:GetMembership", - "cleanrooms:ListTagsForResource", - "cleanrooms:TagResource", - "cleanrooms:ListMemberships", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "cleanrooms:DeleteMembership", - "cleanrooms:GetMembership", - "cleanrooms:ListMemberships", - "cleanrooms:ListTagsForResource", - "logs:ListLogDeliveries", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery" - ] - }, - "list": { - "permissions": [ - "cleanrooms:ListMemberships" - ] - }, - "read": { - "permissions": [ - "cleanrooms:GetMembership", - "cleanrooms:ListTagsForResource", - "logs:ListLogDeliveries", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery" - ] - }, - "update": { - "permissions": [ - "cleanrooms:UpdateMembership", - "cleanrooms:GetMembership", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:PutResourcePolicy", - "logs:CreateLogGroup", - "cleanrooms:ListTagsForResource", - "cleanrooms:TagResource", - "cleanrooms:UntagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/MembershipIdentifier" - ], - "properties": { - "Arn": { - "maxLength": 100, - "type": "string" - }, - "CollaborationArn": { - "maxLength": 100, - "type": "string" - }, - "CollaborationCreatorAccountId": { - "maxLength": 12, - "minLength": 12, - "pattern": "^\\d+$", - "type": "string" - }, - "CollaborationIdentifier": { - "maxLength": 36, - "minLength": 36, - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", - "type": "string" - }, - "DefaultResultConfiguration": { - "$ref": "#/definitions/MembershipProtectedQueryResultConfiguration" - }, - "MembershipIdentifier": { - "maxLength": 36, - "minLength": 36, - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", - "type": "string" - }, - "QueryLogStatus": { - "$ref": "#/definitions/MembershipQueryLogStatus" - }, - "Tags": { - "description": "An arbitrary set of tags (key-value pairs) for this cleanrooms membership.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CollaborationArn", - "/properties/CollaborationCreatorAccountId", - "/properties/MembershipIdentifier" - ], - "required": [ - "CollaborationIdentifier", - "QueryLogStatus" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::CleanRooms::Membership" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-codedeploy-deploymentgroup.json new file mode 100644 index 0000000000..208990a115 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-codedeploy-deploymentgroup.json @@ -0,0 +1,523 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentGroupName", + "/properties/ApplicationName" + ], + "definitions": { + "Alarm": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AlarmConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/Alarm" + }, + "type": "array", + "uniqueItems": true + }, + "Enabled": { + "type": "boolean" + }, + "IgnorePollAlarmFailure": { + "type": "boolean" + } + }, + "type": "object" + }, + "AutoRollbackConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Events": { + "items": { + "enum": [ + "DEPLOYMENT_FAILURE", + "DEPLOYMENT_STOP_ON_ALARM", + "DEPLOYMENT_STOP_ON_REQUEST" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "BlueGreenDeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "DeploymentReadyOption": { + "$ref": "#/definitions/DeploymentReadyOption" + }, + "GreenFleetProvisioningOption": { + "$ref": "#/definitions/GreenFleetProvisioningOption" + }, + "TerminateBlueInstancesOnDeploymentSuccess": { + "$ref": "#/definitions/BlueInstanceTerminationOption" + } + }, + "type": "object" + }, + "BlueInstanceTerminationOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "TerminationWaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "Deployment": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "IgnoreApplicationStopFailures": { + "type": "boolean" + }, + "Revision": { + "$ref": "#/definitions/RevisionLocation" + } + }, + "required": [ + "Revision" + ], + "type": "object" + }, + "DeploymentReadyOption": { + "additionalProperties": false, + "properties": { + "ActionOnTimeout": { + "type": "string" + }, + "WaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentStyle": { + "additionalProperties": false, + "properties": { + "DeploymentOption": { + "enum": [ + "WITH_TRAFFIC_CONTROL", + "WITHOUT_TRAFFIC_CONTROL" + ], + "type": "string" + }, + "DeploymentType": { + "enum": [ + "IN_PLACE", + "BLUE_GREEN" + ], + "type": "string" + } + }, + "type": "object" + }, + "EC2TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "EC2TagSet": { + "additionalProperties": false, + "properties": { + "Ec2TagSetList": { + "items": { + "$ref": "#/definitions/EC2TagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EC2TagSetListObject": { + "additionalProperties": false, + "properties": { + "Ec2TagGroup": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ECSService": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + } + }, + "required": [ + "ServiceName", + "ClusterName" + ], + "type": "object" + }, + "ELBInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "GitHubLocation": { + "additionalProperties": false, + "properties": { + "CommitId": { + "type": "string" + }, + "Repository": { + "type": "string" + } + }, + "required": [ + "Repository", + "CommitId" + ], + "type": "object" + }, + "GreenFleetProvisioningOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "type": "object" + }, + "LoadBalancerInfo": { + "additionalProperties": false, + "properties": { + "ElbInfoList": { + "items": { + "$ref": "#/definitions/ELBInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupPairInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupPairInfo" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSet": { + "additionalProperties": false, + "properties": { + "OnPremisesTagSetList": { + "items": { + "$ref": "#/definitions/OnPremisesTagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSetListObject": { + "additionalProperties": false, + "properties": { + "OnPremisesTagGroup": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "RevisionLocation": { + "additionalProperties": false, + "properties": { + "GitHubLocation": { + "$ref": "#/definitions/GitHubLocation" + }, + "RevisionType": { + "type": "string" + }, + "S3Location": { + "$ref": "#/definitions/S3Location" + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "BundleType": { + "type": "string" + }, + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupPairInfo": { + "additionalProperties": false, + "properties": { + "ProdTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + }, + "TargetGroups": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TestTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + } + }, + "type": "object" + }, + "TrafficRoute": { + "additionalProperties": false, + "properties": { + "ListenerArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerEvents": { + "items": { + "enum": [ + "DeploymentStart", + "DeploymentSuccess", + "DeploymentFailure", + "DeploymentStop", + "DeploymentRollback", + "DeploymentReady", + "InstanceStart", + "InstanceSuccess", + "InstanceFailure", + "InstanceReady" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "TriggerName": { + "type": "string" + }, + "TriggerTargetArn": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AlarmConfiguration": { + "$ref": "#/definitions/AlarmConfiguration" + }, + "ApplicationName": { + "type": "string" + }, + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AutoRollbackConfiguration" + }, + "AutoScalingGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BlueGreenDeploymentConfiguration": { + "$ref": "#/definitions/BlueGreenDeploymentConfiguration" + }, + "Deployment": { + "$ref": "#/definitions/Deployment" + }, + "DeploymentConfigName": { + "type": "string" + }, + "DeploymentGroupName": { + "type": "string" + }, + "DeploymentStyle": { + "$ref": "#/definitions/DeploymentStyle" + }, + "ECSServices": { + "items": { + "$ref": "#/definitions/ECSService" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagFilters": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagSet": { + "$ref": "#/definitions/EC2TagSet" + }, + "Id": { + "type": "string" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/LoadBalancerInfo" + }, + "OnPremisesInstanceTagFilters": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "OnPremisesTagSet": { + "$ref": "#/definitions/OnPremisesTagSet" + }, + "OutdatedInstancesStrategy": { + "type": "string" + }, + "ServiceRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TerminationHookEnabled": { + "type": "boolean" + }, + "TriggerConfigurations": { + "items": { + "$ref": "#/definitions/TriggerConfig" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "ServiceRoleArn" + ], + "typeName": "AWS::CodeDeploy::DeploymentGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-gatewayroutetableassociation.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-gatewayroutetableassociation.json deleted file mode 100644 index 8cd7eb714b..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-gatewayroutetableassociation.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GatewayId" - ], - "description": "Associates a gateway with a route table. The gateway and route table must be in the same VPC. This association causes the incoming traffic to the gateway to be routed according to the routes in the route table.", - "handlers": { - "create": { - "permissions": [ - "ec2:AssociateRouteTable" - ] - }, - "delete": { - "permissions": [ - "ec2:DescribeRouteTables", - "ec2:DisassociateRouteTable" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeRouteTables" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeRouteTables", - "ec2:ReplaceRouteTableAssociation" - ] - } - }, - "primaryIdentifier": [ - "/properties/GatewayId" - ], - "properties": { - "AssociationId": { - "description": "The route table association ID.", - "type": "string" - }, - "GatewayId": { - "description": "The ID of the gateway.", - "type": "string" - }, - "RouteTableId": { - "description": "The ID of the route table.", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/AssociationId" - ], - "required": [ - "RouteTableId", - "GatewayId" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-gatewayroutetableassociation.html", - "typeName": "AWS::EC2::GatewayRouteTableAssociation" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-route.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-route.json new file mode 100644 index 0000000000..722dba73ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-route.json @@ -0,0 +1,129 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RouteTableId", + "/properties/DestinationCidrBlock", + "/properties/DestinationIpv6CidrBlock", + "/properties/DestinationPrefixListId" + ], + "description": "Resource Type definition for AWS::EC2::Route", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateRoute", + "ec2:DescribeRouteTables", + "ec2:DescribeNetworkInterfaces" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteRoute", + "ec2:DescribeRouteTables" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "RouteTableId": { + "$ref": "resource-schema.json#/properties/RouteTableId" + } + }, + "required": [ + "RouteTableId" + ] + }, + "permissions": [ + "ec2:DescribeRouteTables" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeRouteTables" + ] + }, + "update": { + "permissions": [ + "ec2:ReplaceRoute", + "ec2:DescribeRouteTables", + "ec2:DescribeNetworkInterfaces" + ] + } + }, + "primaryIdentifier": [ + "/properties/RouteTableId", + "/properties/CidrBlock" + ], + "properties": { + "CarrierGatewayId": { + "description": "The ID of the carrier gateway.", + "type": "string" + }, + "CidrBlock": { + "description": "The primary identifier of the resource generated by the service.", + "type": "string" + }, + "DestinationCidrBlock": { + "description": "The IPv4 CIDR block used for the destination match.", + "type": "string" + }, + "DestinationIpv6CidrBlock": { + "description": "The IPv6 CIDR block used for the destination match.", + "type": "string" + }, + "DestinationPrefixListId": { + "description": "The ID of managed prefix list, it's a set of one or more CIDR blocks.", + "type": "string" + }, + "EgressOnlyInternetGatewayId": { + "description": "The ID of the egress-only internet gateway.", + "type": "string" + }, + "GatewayId": { + "description": "The ID of an internet gateway or virtual private gateway attached to your VPC.", + "type": "string" + }, + "InstanceId": { + "description": "The ID of a NAT instance in your VPC.", + "type": "string" + }, + "LocalGatewayId": { + "description": "The ID of the local gateway.", + "type": "string" + }, + "NatGatewayId": { + "description": "The ID of a NAT gateway.", + "type": "string" + }, + "NetworkInterfaceId": { + "description": "The ID of the network interface.", + "type": "string" + }, + "RouteTableId": { + "description": "The ID of the route table. The routing table must be associated with the same VPC that the virtual private gateway is attached to.", + "type": "string" + }, + "TransitGatewayId": { + "description": "The ID of a transit gateway.", + "type": "string" + }, + "VpcEndpointId": { + "description": "The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.", + "type": "string" + }, + "VpcPeeringConnectionId": { + "description": "The ID of a VPC peering connection.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CidrBlock" + ], + "required": [ + "RouteTableId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2", + "tagging": { + "taggable": false + }, + "typeName": "AWS::EC2::Route" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-subnet.json deleted file mode 100644 index 4a658f1cd4..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-subnet.json +++ /dev/null @@ -1,158 +0,0 @@ -{ - "additionalProperties": false, - "conditionalCreateOnlyProperties": [ - "/properties/Ipv6CidrBlock" - ], - "createOnlyProperties": [ - "/properties/VpcId", - "/properties/AvailabilityZone", - "/properties/AvailabilityZoneId", - "/properties/CidrBlock", - "/properties/OutpostArn", - "/properties/Ipv6Native" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EC2::Subnet", - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeSubnets", - "ec2:CreateSubnet", - "ec2:CreateTags", - "ec2:ModifySubnetAttribute" - ] - }, - "delete": { - "permissions": [ - "ec2:DescribeSubnets", - "ec2:DeleteSubnet" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeSubnets", - "ec2:DescribeNetworkAcls" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeSubnets", - "ec2:DescribeNetworkAcls" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeSubnets", - "ec2:ModifySubnetAttribute", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:AssociateSubnetCidrBlock", - "ec2:DisassociateSubnetCidrBlock" - ] - } - }, - "primaryIdentifier": [ - "/properties/SubnetId" - ], - "properties": { - "AssignIpv6AddressOnCreation": { - "type": "boolean" - }, - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - }, - "AvailabilityZoneId": { - "type": "string" - }, - "CidrBlock": { - "type": "string" - }, - "EnableDns64": { - "type": "boolean" - }, - "Ipv6CidrBlock": { - "type": "string" - }, - "Ipv6CidrBlocks": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Ipv6Native": { - "type": "boolean" - }, - "MapPublicIpOnLaunch": { - "type": "boolean" - }, - "NetworkAclAssociationId": { - "type": "string" - }, - "OutpostArn": { - "type": "string" - }, - "PrivateDnsNameOptionsOnLaunch": { - "additionalProperties": false, - "properties": { - "EnableResourceNameDnsAAAARecord": { - "type": "boolean" - }, - "EnableResourceNameDnsARecord": { - "type": "boolean" - }, - "HostnameType": { - "type": "string" - } - }, - "type": "object" - }, - "SubnetId": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VpcId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/NetworkAclAssociationId", - "/properties/SubnetId", - "/properties/Ipv6CidrBlocks" - ], - "required": [ - "VpcId" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::Subnet" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-emr-cluster.json new file mode 100644 index 0000000000..7ce37fccb6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-emr-cluster.json @@ -0,0 +1,858 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Steps", + "/properties/EbsRootVolumeSize", + "/properties/SecurityConfiguration", + "/properties/ScaleDownBehavior", + "/properties/Configurations", + "/properties/ReleaseLabel", + "/properties/BootstrapActions", + "/properties/EbsRootVolumeIops", + "/properties/KerberosAttributes", + "/properties/ServiceRole", + "/properties/LogEncryptionKmsKeyId", + "/properties/Name", + "/properties/EbsRootVolumeThroughput", + "/properties/JobFlowRole", + "/properties/AdditionalInfo", + "/properties/LogUri", + "/properties/CustomAmiId", + "/properties/PlacementGroupConfigs", + "/properties/OSReleaseLabel", + "/properties/AutoScalingRole", + "/properties/Applications" + ], + "definitions": { + "Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ScalingRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/ScriptBootstrapActionConfig" + } + }, + "required": [ + "ScriptBootstrapAction", + "Name" + ], + "type": "object" + }, + "CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "EvaluationPeriods": { + "type": "integer" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "integer" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "ComparisonOperator", + "Period", + "Threshold" + ], + "type": "object" + }, + "ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "integer" + }, + "MaximumCoreCapacityUnits": { + "type": "integer" + }, + "MaximumOnDemandCapacityUnits": { + "type": "integer" + }, + "MinimumCapacityUnits": { + "type": "integer" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "UnitType", + "MaximumCapacityUnits", + "MinimumCapacityUnits" + ], + "type": "object" + }, + "Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "integer" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/EbsBlockDeviceConfig" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/KeyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/InstanceTypeConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchSpecifications": { + "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "integer" + }, + "TargetSpotCapacity": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/OnDemandProvisioningSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/SpotProvisioningSpecification" + } + }, + "type": "object" + }, + "InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceType": { + "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", + "type": "string" + }, + "WeightedCapacity": { + "type": "integer" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/ComputeLimits" + } + }, + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "PlacementGroupConfig": { + "additionalProperties": false, + "properties": { + "InstanceRole": { + "type": "string" + }, + "PlacementStrategy": { + "type": "string" + } + }, + "required": [ + "InstanceRole" + ], + "type": "object" + }, + "PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/ScalingTrigger" + } + }, + "required": [ + "Action", + "Trigger", + "Name" + ], + "type": "object" + }, + "ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BlockDurationMinutes": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "integer" + } + }, + "required": [ + "TimeoutDurationMinutes", + "TimeoutAction" + ], + "type": "object" + }, + "StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "integer" + }, + "SizeInGB": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EMR::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/Application" + }, + "type": "array", + "uniqueItems": true + }, + "AutoScalingRole": { + "type": "string" + }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AutoTerminationPolicy" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/BootstrapActionConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeIops": { + "type": "integer" + }, + "EbsRootVolumeSize": { + "type": "integer" + }, + "EbsRootVolumeThroughput": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Instances": { + "$ref": "#/definitions/JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/KerberosAttributes" + }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, + "LogUri": { + "type": "string" + }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/ManagedScalingPolicy" + }, + "MasterPublicDNS": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OSReleaseLabel": { + "type": "string" + }, + "PlacementGroupConfigs": { + "items": { + "$ref": "#/definitions/PlacementGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "StepConcurrencyLevel": { + "type": "integer" + }, + "Steps": { + "items": { + "$ref": "#/definitions/StepConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/MasterPublicDNS" + ], + "required": [ + "Instances", + "ServiceRole", + "JobFlowRole", + "Name" + ], + "typeName": "AWS::EMR::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-eventschemas-discoverer.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-eventschemas-discoverer.json deleted file mode 100644 index 791d433995..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-eventschemas-discoverer.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SourceArn" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EventSchemas::Discoverer", - "primaryIdentifier": [ - "/properties/DiscovererId" - ], - "properties": { - "CrossAccount": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DiscovererArn": { - "type": "string" - }, - "DiscovererId": { - "type": "string" - }, - "SourceArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/DiscovererId", - "/properties/DiscovererArn" - ], - "required": [ - "SourceArn" - ], - "typeName": "AWS::EventSchemas::Discoverer" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-imagebuilder-image.json new file mode 100644 index 0000000000..5582329923 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-imagebuilder-image.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ImageRecipeArn", + "/properties/ContainerRecipeArn", + "/properties/InfrastructureConfigurationArn", + "/properties/DistributionConfigurationArn", + "/properties/ImageTestsConfiguration", + "/properties/ImageScanningConfiguration", + "/properties/EnhancedImageMetadataEnabled", + "/properties/Tags" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Contains settings for Image Builder image resource and container image scans.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "The image tests configuration used when creating this image.", + "properties": { + "ImageTestsEnabled": { + "description": "ImageTestsEnabled", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "TimeoutMinutes", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::ImageBuilder::Image", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:GetImage", + "imagebuilder:CreateImage", + "imagebuilder:TagResource", + "inspector2:BatchGetAccountStatus" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "imagebuilder:GetImage", + "imagebuilder:DeleteImage", + "imagebuilder:UnTagResource", + "imagebuilder:CancelImageCreation" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListImages" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImage" + ] + } + }, + "oneOf": [ + { + "required": [ + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ImageId": { + "description": "The AMI ID of the EC2 AMI in current region.", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration used when creating this image." + }, + "ImageUri": { + "description": "URI for containers created in current Region with default ECR image tag", + "type": "string" + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", + "type": "string" + }, + "Name": { + "description": "The name of the image.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the image.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Name", + "/properties/ImageId", + "/properties/ImageUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Image" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-imagebuilder-imagepipeline.json new file mode 100644 index 0000000000..5b70e0ff38 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-imagebuilder-imagepipeline.json @@ -0,0 +1,213 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "Image tests configuration.", + "properties": { + "ImageTestsEnabled": { + "description": "Defines if tests should be executed when building this image.", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "The maximum time in minutes that tests are permitted to run.", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "description": "The schedule of the image pipeline.", + "properties": { + "PipelineExecutionStartCondition": { + "description": "The condition configures when the pipeline should trigger a new image build.", + "enum": [ + "EXPRESSION_MATCH_ONLY", + "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + ], + "type": "string" + }, + "ScheduleExpression": { + "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:CreateImagePipeline", + "imagebuilder:GetWorkflow", + "inspector2:BatchGetAccountStatus" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:UnTagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:DeleteImagePipeline" + ] + }, + "list": { + "permissions": [ + "imagebuilder:ListImagePipelines" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImagePipeline" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "imagebuilder:GetImagePipeline", + "imagebuilder:UpdateImagePipeline", + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Name", + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "Name", + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image pipeline.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "Description": { + "description": "The description of the image pipeline.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration of the image pipeline." + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", + "type": "string" + }, + "Name": { + "description": "The name of the image pipeline.", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule", + "description": "The schedule of the image pipeline." + }, + "Status": { + "description": "The status of the image pipeline.", + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags of this image pipeline.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::ImagePipeline" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-route53resolver-resolverconfig.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-route53resolver-resolverconfig.json deleted file mode 100644 index 33f4996fbd..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-route53resolver-resolverconfig.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ResourceId", - "/properties/AutodefinedReverseFlag" - ], - "description": "Resource schema for AWS::Route53Resolver::ResolverConfig.", - "handlers": { - "create": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "delete": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "list": { - "permissions": [ - "route53resolver:ListResolverConfigs" - ] - }, - "read": { - "permissions": [ - "route53resolver:GetResolverConfig" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AutodefinedReverse": { - "description": "ResolverAutodefinedReverseStatus, possible values are ENABLING, ENABLED, DISABLING AND DISABLED.", - "enum": [ - "ENABLING", - "ENABLED", - "DISABLING", - "DISABLED" - ], - "type": "string" - }, - "AutodefinedReverseFlag": { - "description": "Represents the desired status of AutodefinedReverse. The only supported value on creation is DISABLE. Deletion of this resource will return AutodefinedReverse to its default value (ENABLED).", - "enum": [ - "DISABLE" - ], - "type": "string" - }, - "Id": { - "description": "Id", - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "OwnerId": { - "description": "AccountId", - "maxLength": 32, - "minLength": 12, - "type": "string" - }, - "ResourceId": { - "description": "ResourceId", - "maxLength": 64, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/OwnerId", - "/properties/Id", - "/properties/AutodefinedReverse" - ], - "required": [ - "ResourceId", - "AutodefinedReverseFlag" - ], - "taggable": false, - "typeName": "AWS::Route53Resolver::ResolverConfig" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-s3-bucket.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-s3-bucket.json deleted file mode 100644 index 5f53f45913..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-s3-bucket.json +++ /dev/null @@ -1,1645 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/BucketName", - "/properties/ObjectLockEnabled" - ], - "definitions": { - "AbortIncompleteMultipartUpload": { - "additionalProperties": false, - "description": "Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload.", - "properties": { - "DaysAfterInitiation": { - "description": "Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload.", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "DaysAfterInitiation" - ], - "type": "object" - }, - "AccelerateConfiguration": { - "additionalProperties": false, - "properties": { - "AccelerationStatus": { - "description": "Configures the transfer acceleration state for an Amazon S3 bucket.", - "enum": [ - "Enabled", - "Suspended" - ], - "type": "string" - } - }, - "required": [ - "AccelerationStatus" - ], - "type": "object" - }, - "AccessControlTranslation": { - "additionalProperties": false, - "description": "Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS account that owns the source object.", - "properties": { - "Owner": { - "const": "Destination", - "type": "string" - } - }, - "required": [ - "Owner" - ], - "type": "object" - }, - "AnalyticsConfiguration": { - "additionalProperties": false, - "description": "Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.", - "properties": { - "Id": { - "description": "The ID that identifies the analytics configuration.", - "type": "string" - }, - "Prefix": { - "description": "The prefix that an object must have to be included in the analytics results.", - "type": "string" - }, - "StorageClassAnalysis": { - "$ref": "#/definitions/StorageClassAnalysis" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "StorageClassAnalysis", - "Id" - ], - "type": "object" - }, - "Arn": { - "description": "the Amazon Resource Name (ARN) of the specified bucket.", - "type": "string" - }, - "BucketEncryption": { - "additionalProperties": false, - "description": "Specifies default encryption for a bucket using server-side encryption with either Amazon S3-managed keys (SSE-S3) or AWS KMS-managed keys (SSE-KMS).", - "properties": { - "ServerSideEncryptionConfiguration": { - "description": "Specifies the default server-side-encryption configuration.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ServerSideEncryptionRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "ServerSideEncryptionConfiguration" - ], - "type": "object" - }, - "CorsConfiguration": { - "additionalProperties": false, - "properties": { - "CorsRules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/CorsRule", - "maxLength": 100 - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "CorsRules" - ], - "type": "object" - }, - "CorsRule": { - "additionalProperties": false, - "description": "A set of origins and methods (cross-origin access that you want to allow). You can add up to 100 rules to the configuration.", - "properties": { - "AllowedHeaders": { - "description": "Headers that are specified in the Access-Control-Request-Headers header.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AllowedMethods": { - "description": "An HTTP method that you allow the origin to execute.", - "insertionOrder": true, - "items": { - "enum": [ - "GET", - "PUT", - "HEAD", - "POST", - "DELETE" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AllowedOrigins": { - "description": "One or more origins you want customers to be able to access the bucket from.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "ExposedHeaders": { - "description": "One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object).", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Id": { - "description": "A unique identifier for this rule.", - "maxLength": 255, - "type": "string" - }, - "MaxAge": { - "description": "The time in seconds that your browser is to cache the preflight response for the specified resource.", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AllowedMethods", - "AllowedOrigins" - ], - "type": "object" - }, - "DataExport": { - "additionalProperties": false, - "description": "Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.", - "properties": { - "Destination": { - "$ref": "#/definitions/Destination" - }, - "OutputSchemaVersion": { - "const": "V_1", - "description": "The version of the output schema to use when exporting data.", - "type": "string" - } - }, - "required": [ - "Destination", - "OutputSchemaVersion" - ], - "type": "object" - }, - "DefaultRetention": { - "additionalProperties": false, - "description": "The default retention period that you want to apply to new objects placed in the specified bucket.", - "properties": { - "Days": { - "type": "integer" - }, - "Mode": { - "enum": [ - "COMPLIANCE", - "GOVERNANCE" - ], - "type": "string" - }, - "Years": { - "type": "integer" - } - }, - "type": "object" - }, - "DeleteMarkerReplication": { - "additionalProperties": false, - "properties": { - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "type": "object" - }, - "Destination": { - "additionalProperties": false, - "description": "Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC).", - "properties": { - "BucketAccountId": { - "description": "The account ID that owns the destination S3 bucket. ", - "type": "string" - }, - "BucketArn": { - "description": "The Amazon Resource Name (ARN) of the bucket to which data is exported.", - "type": "string" - }, - "Format": { - "description": "Specifies the file format used when exporting data to Amazon S3.", - "enum": [ - "CSV", - "ORC", - "Parquet" - ], - "type": "string" - }, - "Prefix": { - "description": "The prefix to use when exporting data. The prefix is prepended to all results.", - "type": "string" - } - }, - "required": [ - "BucketArn", - "Format" - ], - "type": "object" - }, - "EncryptionConfiguration": { - "additionalProperties": false, - "description": "Specifies encryption-related information for an Amazon S3 bucket that is a destination for replicated objects.", - "properties": { - "ReplicaKmsKeyID": { - "description": "Specifies the ID (Key ARN or Alias ARN) of the customer managed customer master key (CMK) stored in AWS Key Management Service (KMS) for the destination bucket.", - "type": "string" - } - }, - "required": [ - "ReplicaKmsKeyID" - ], - "type": "object" - }, - "EventBridgeConfiguration": { - "additionalProperties": false, - "description": "Describes the Amazon EventBridge notification configuration for an Amazon S3 bucket.", - "properties": { - "EventBridgeEnabled": { - "default": "true", - "description": "Specifies whether to send notifications to Amazon EventBridge when events occur in an Amazon S3 bucket.", - "type": "boolean" - } - }, - "required": [ - "EventBridgeEnabled" - ], - "type": "object" - }, - "FilterRule": { - "additionalProperties": false, - "description": "Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.", - "properties": { - "Name": { - "maxLength": 1024, - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Name" - ], - "type": "object" - }, - "IntelligentTieringConfiguration": { - "additionalProperties": false, - "properties": { - "Id": { - "description": "The ID used to identify the S3 Intelligent-Tiering configuration.", - "type": "string" - }, - "Prefix": { - "description": "An object key name prefix that identifies the subset of objects to which the rule applies.", - "type": "string" - }, - "Status": { - "description": "Specifies the status of the configuration.", - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - }, - "TagFilters": { - "description": "A container for a key-value pair.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Tierings": { - "description": "Specifies a list of S3 Intelligent-Tiering storage class tiers in the configuration. At least one tier must be defined in the list. At most, you can specify two tiers in the list, one for each available AccessTier: ARCHIVE_ACCESS and DEEP_ARCHIVE_ACCESS.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Tiering" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Id", - "Status", - "Tierings" - ], - "type": "object" - }, - "InventoryConfiguration": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/Destination" - }, - "Enabled": { - "description": "Specifies whether the inventory is enabled or disabled.", - "type": "boolean" - }, - "Id": { - "description": "The ID used to identify the inventory configuration.", - "type": "string" - }, - "IncludedObjectVersions": { - "description": "Object versions to include in the inventory list.", - "enum": [ - "All", - "Current" - ], - "type": "string" - }, - "OptionalFields": { - "description": "Contains the optional fields that are included in the inventory results.", - "insertionOrder": true, - "items": { - "enum": [ - "Size", - "LastModifiedDate", - "StorageClass", - "ETag", - "IsMultipartUploaded", - "ReplicationStatus", - "EncryptionStatus", - "ObjectLockRetainUntilDate", - "ObjectLockMode", - "ObjectLockLegalHoldStatus", - "IntelligentTieringAccessTier", - "BucketKeyStatus", - "ChecksumAlgorithm" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Prefix": { - "description": "The prefix that is prepended to all inventory results.", - "type": "string" - }, - "ScheduleFrequency": { - "description": "Specifies the schedule for generating inventory results.", - "enum": [ - "Daily", - "Weekly" - ], - "type": "string" - } - }, - "required": [ - "Destination", - "Enabled", - "Id", - "IncludedObjectVersions", - "ScheduleFrequency" - ], - "type": "object" - }, - "LambdaConfiguration": { - "additionalProperties": false, - "description": "Describes the AWS Lambda functions to invoke and the events for which to invoke them.", - "properties": { - "Event": { - "description": "The Amazon S3 bucket event for which to invoke the AWS Lambda function.", - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter", - "description": "The filtering rules that determine which objects invoke the AWS Lambda function." - }, - "Function": { - "description": "The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3 invokes when the specified event type occurs.", - "type": "string" - } - }, - "required": [ - "Function", - "Event" - ], - "type": "object" - }, - "LifecycleConfiguration": { - "additionalProperties": false, - "properties": { - "Rules": { - "description": "A lifecycle rule for individual objects in an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Rule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "DestinationBucketName": { - "description": "The name of an Amazon S3 bucket where Amazon S3 store server access log files. You can store log files in any bucket that you own. By default, logs are stored in the bucket where the LoggingConfiguration property is defined.", - "type": "string" - }, - "LogFilePrefix": { - "type": "string" - } - }, - "type": "object" - }, - "Metrics": { - "additionalProperties": false, - "properties": { - "EventThreshold": { - "$ref": "#/definitions/ReplicationTimeValue" - }, - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "MetricsConfiguration": { - "additionalProperties": false, - "properties": { - "AccessPointArn": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Prefix": { - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Id" - ], - "type": "object" - }, - "NoncurrentVersionExpiration": { - "additionalProperties": false, - "description": "Container for the expiration rule that describes when noncurrent objects are expired. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 expire noncurrent object versions at a specific period in the object's lifetime", - "properties": { - "NewerNoncurrentVersions": { - "description": "Specified the number of newer noncurrent and current versions that must exists before performing the associated action", - "type": "integer" - }, - "NoncurrentDays": { - "description": "Specified the number of days an object is noncurrent before Amazon S3 can perform the associated action", - "type": "integer" - } - }, - "required": [ - "NoncurrentDays" - ], - "type": "object" - }, - "NoncurrentVersionTransition": { - "additionalProperties": false, - "description": "Container for the transition rule that describes when noncurrent objects transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's lifetime.", - "properties": { - "NewerNoncurrentVersions": { - "description": "Specified the number of newer noncurrent and current versions that must exists before performing the associated action", - "type": "integer" - }, - "StorageClass": { - "description": "The class of storage used to store the object.", - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "Glacier", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "STANDARD_IA" - ], - "type": "string" - }, - "TransitionInDays": { - "description": "Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action.", - "type": "integer" - } - }, - "required": [ - "StorageClass", - "TransitionInDays" - ], - "type": "object" - }, - "NotificationConfiguration": { - "additionalProperties": false, - "description": "Describes the notification configuration for an Amazon S3 bucket.", - "properties": { - "EventBridgeConfiguration": { - "$ref": "#/definitions/EventBridgeConfiguration" - }, - "LambdaConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/LambdaConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "QueueConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/QueueConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "TopicConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TopicConfiguration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "NotificationFilter": { - "additionalProperties": false, - "description": "Specifies object key name filtering rules.", - "properties": { - "S3Key": { - "$ref": "#/definitions/S3KeyFilter" - } - }, - "required": [ - "S3Key" - ], - "type": "object" - }, - "ObjectLockConfiguration": { - "additionalProperties": false, - "properties": { - "ObjectLockEnabled": { - "const": "Enabled", - "type": "string" - }, - "Rule": { - "$ref": "#/definitions/ObjectLockRule" - } - }, - "type": "object" - }, - "ObjectLockRule": { - "additionalProperties": false, - "description": "The Object Lock rule in place for the specified object.", - "properties": { - "DefaultRetention": { - "$ref": "#/definitions/DefaultRetention" - } - }, - "type": "object" - }, - "OwnershipControls": { - "additionalProperties": false, - "properties": { - "Rules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/OwnershipControlsRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "OwnershipControlsRule": { - "additionalProperties": false, - "properties": { - "ObjectOwnership": { - "description": "Specifies an object ownership rule.", - "enum": [ - "ObjectWriter", - "BucketOwnerPreferred", - "BucketOwnerEnforced" - ], - "type": "string" - } - }, - "type": "object" - }, - "PublicAccessBlockConfiguration": { - "additionalProperties": false, - "description": "Configuration that defines how Amazon S3 handles public access.", - "properties": { - "BlockPublicAcls": { - "description": "Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this bucket. Setting this element to TRUE causes the following behavior:\n- PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public.\n - PUT Object calls fail if the request includes a public ACL.\nEnabling this setting doesn't affect existing policies or ACLs.", - "type": "boolean" - }, - "BlockPublicPolicy": { - "description": "Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to TRUE causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.\nEnabling this setting doesn't affect existing bucket policies.", - "type": "boolean" - }, - "IgnorePublicAcls": { - "description": "Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this element to TRUE causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket.\nEnabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.", - "type": "boolean" - }, - "RestrictPublicBuckets": { - "description": "Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to TRUE restricts access to this bucket to only AWS services and authorized users within this account if the bucket has a public policy.\nEnabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked.", - "type": "boolean" - } - }, - "type": "object" - }, - "QueueConfiguration": { - "additionalProperties": false, - "description": "The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages.", - "properties": { - "Event": { - "description": "The Amazon S3 bucket event about which you want to publish messages to Amazon SQS.", - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter", - "description": "The filtering rules that determine which objects trigger notifications." - }, - "Queue": { - "description": "The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type.", - "type": "string" - } - }, - "required": [ - "Event", - "Queue" - ], - "type": "object" - }, - "RedirectAllRequestsTo": { - "additionalProperties": false, - "dependencies": { - "RedirectAllRequestsTo": { - "properties": { - "ErrorDocument": false, - "IndexDocument": false, - "RoutingRules": false - } - } - }, - "description": "Specifies the redirect behavior of all requests to a website endpoint of an Amazon S3 bucket.", - "properties": { - "HostName": { - "description": "Name of the host where requests are redirected.", - "type": "string" - }, - "Protocol": { - "description": "Protocol to use when redirecting requests. The default is the protocol that is used in the original request.", - "enum": [ - "http", - "https" - ], - "type": "string" - } - }, - "required": [ - "HostName" - ], - "type": "object" - }, - "RedirectRule": { - "additionalProperties": false, - "description": "Specifies how requests are redirected. In the event of an error, you can specify a different error code to return.", - "properties": { - "HostName": { - "description": "The host name to use in the redirect request.", - "type": "string" - }, - "HttpRedirectCode": { - "description": "The HTTP redirect code to use on the response. Not required if one of the siblings is present.", - "type": "string" - }, - "Protocol": { - "description": "Protocol to use when redirecting requests. The default is the protocol that is used in the original request.", - "enum": [ - "http", - "https" - ], - "type": "string" - }, - "ReplaceKeyPrefixWith": { - "description": "The object key prefix to use in the redirect request.", - "type": "string" - }, - "ReplaceKeyWith": { - "description": "The specific object key to use in the redirect request.d", - "type": "string" - } - }, - "type": "object" - }, - "ReplicaModifications": { - "additionalProperties": false, - "properties": { - "Status": { - "description": "Specifies whether Amazon S3 replicates modifications on replicas.", - "enum": [ - "Enabled", - "Disabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "ReplicationConfiguration": { - "additionalProperties": false, - "description": "A container for replication rules. You can add up to 1,000 rules. The maximum size of a replication configuration is 2 MB.", - "properties": { - "Role": { - "awsType": "IamRoleArn", - "description": "The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that Amazon S3 assumes when replicating objects.", - "type": "string" - }, - "Rules": { - "description": "A container for one or more replication rules.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ReplicationRule", - "maxLength": 1000, - "minLength": 1 - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Role", - "Rules" - ], - "type": "object" - }, - "ReplicationDestination": { - "additionalProperties": false, - "description": "Specifies which Amazon S3 bucket to store replicated objects in and their storage class.", - "properties": { - "AccessControlTranslation": { - "$ref": "#/definitions/AccessControlTranslation" - }, - "Account": { - "type": "string" - }, - "Bucket": { - "type": "string" - }, - "EncryptionConfiguration": { - "$ref": "#/definitions/EncryptionConfiguration" - }, - "Metrics": { - "$ref": "#/definitions/Metrics" - }, - "ReplicationTime": { - "$ref": "#/definitions/ReplicationTime" - }, - "StorageClass": { - "description": "The storage class to use when replicating objects, such as S3 Standard or reduced redundancy.", - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "REDUCED_REDUNDANCY", - "STANDARD", - "STANDARD_IA" - ], - "type": "string" - } - }, - "required": [ - "Bucket" - ], - "type": "object" - }, - "ReplicationRule": { - "additionalProperties": false, - "description": "Specifies which Amazon S3 objects to replicate and where to store the replicas.", - "properties": { - "DeleteMarkerReplication": { - "$ref": "#/definitions/DeleteMarkerReplication" - }, - "Destination": { - "$ref": "#/definitions/ReplicationDestination" - }, - "Filter": { - "$ref": "#/definitions/ReplicationRuleFilter" - }, - "Id": { - "description": "A unique identifier for the rule.", - "maxLength": 255, - "type": "string" - }, - "Prefix": { - "description": "An object key name prefix that identifies the object or objects to which the rule applies.", - "maxLength": 1024, - "type": "string" - }, - "Priority": { - "type": "integer" - }, - "SourceSelectionCriteria": { - "$ref": "#/definitions/SourceSelectionCriteria" - }, - "Status": { - "description": "Specifies whether the rule is enabled.", - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Destination", - "Status" - ], - "type": "object" - }, - "ReplicationRuleAndOperator": { - "additionalProperties": false, - "properties": { - "Prefix": { - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ReplicationRuleFilter": { - "additionalProperties": false, - "properties": { - "And": { - "$ref": "#/definitions/ReplicationRuleAndOperator" - }, - "Prefix": { - "type": "string" - }, - "TagFilter": { - "$ref": "#/definitions/TagFilter" - } - }, - "type": "object" - }, - "ReplicationTime": { - "additionalProperties": false, - "properties": { - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - }, - "Time": { - "$ref": "#/definitions/ReplicationTimeValue" - } - }, - "required": [ - "Status", - "Time" - ], - "type": "object" - }, - "ReplicationTimeValue": { - "additionalProperties": false, - "properties": { - "Minutes": { - "type": "integer" - } - }, - "required": [ - "Minutes" - ], - "type": "object" - }, - "RoutingRule": { - "additionalProperties": false, - "description": "Specifies the redirect behavior and when a redirect is applied.", - "properties": { - "RedirectRule": { - "$ref": "#/definitions/RedirectRule", - "description": "Container for redirect information. You can redirect requests to another host, to another page, or with another protocol. In the event of an error, you can specify a different error code to return." - }, - "RoutingRuleCondition": { - "$ref": "#/definitions/RoutingRuleCondition" - } - }, - "required": [ - "RedirectRule" - ], - "type": "object" - }, - "RoutingRuleCondition": { - "additionalProperties": false, - "anyOf": [ - { - "required": [ - "HttpErrorCodeReturnedEquals" - ] - }, - { - "required": [ - "KeyPrefixEquals" - ] - } - ], - "description": "A container for describing a condition that must be met for the specified redirect to apply.You must specify at least one of HttpErrorCodeReturnedEquals and KeyPrefixEquals", - "properties": { - "HttpErrorCodeReturnedEquals": { - "description": "The HTTP error code when the redirect is applied. ", - "type": "string" - }, - "KeyPrefixEquals": { - "description": "The object key name prefix when the redirect is applied.", - "type": "string" - } - }, - "type": "object" - }, - "Rule": { - "additionalProperties": false, - "description": "You must specify at least one of the following properties: AbortIncompleteMultipartUpload, ExpirationDate, ExpirationInDays, NoncurrentVersionExpirationInDays, NoncurrentVersionTransition, NoncurrentVersionTransitions, Transition, or Transitions.", - "properties": { - "AbortIncompleteMultipartUpload": { - "$ref": "#/definitions/AbortIncompleteMultipartUpload" - }, - "ExpirationDate": { - "$ref": "#/definitions/iso8601UTC" - }, - "ExpirationInDays": { - "type": "integer" - }, - "ExpiredObjectDeleteMarker": { - "type": "boolean" - }, - "Id": { - "maxLength": 255, - "type": "string" - }, - "NoncurrentVersionExpiration": { - "$ref": "#/definitions/NoncurrentVersionExpiration" - }, - "NoncurrentVersionExpirationInDays": { - "type": "integer" - }, - "NoncurrentVersionTransition": { - "$ref": "#/definitions/NoncurrentVersionTransition" - }, - "NoncurrentVersionTransitions": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/NoncurrentVersionTransition" - }, - "type": "array", - "uniqueItems": true - }, - "ObjectSizeGreaterThan": { - "maxLength": 20, - "pattern": "[0-9]+", - "type": "string" - }, - "ObjectSizeLessThan": { - "maxLength": 20, - "pattern": "[0-9]+", - "type": "string" - }, - "Prefix": { - "type": "string" - }, - "Status": { - "enum": [ - "Enabled", - "Disabled" - ], - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Transition": { - "$ref": "#/definitions/Transition" - }, - "Transitions": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Transition" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "S3KeyFilter": { - "additionalProperties": false, - "description": "A container for object key name prefix and suffix filtering rules.", - "properties": { - "Rules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/FilterRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "ServerSideEncryptionByDefault": { - "additionalProperties": false, - "description": "Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied.", - "properties": { - "KMSMasterKeyID": { - "description": "\"KMSMasterKeyID\" can only be used when you set the value of SSEAlgorithm as aws:kms or aws:kms:dsse.", - "type": "string" - }, - "SSEAlgorithm": { - "enum": [ - "aws:kms", - "AES256", - "aws:kms:dsse" - ], - "type": "string" - } - }, - "required": [ - "SSEAlgorithm" - ], - "type": "object" - }, - "ServerSideEncryptionRule": { - "additionalProperties": false, - "description": "Specifies the default server-side encryption configuration.", - "properties": { - "BucketKeyEnabled": { - "description": "Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the BucketKeyEnabled element to true causes Amazon S3 to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled.", - "type": "boolean" - }, - "ServerSideEncryptionByDefault": { - "$ref": "#/definitions/ServerSideEncryptionByDefault" - } - }, - "type": "object" - }, - "SourceSelectionCriteria": { - "additionalProperties": false, - "description": "A container that describes additional filters for identifying the source objects that you want to replicate.", - "properties": { - "ReplicaModifications": { - "$ref": "#/definitions/ReplicaModifications", - "description": "A filter that you can specify for selection for modifications on replicas." - }, - "SseKmsEncryptedObjects": { - "$ref": "#/definitions/SseKmsEncryptedObjects", - "description": "A container for filter information for the selection of Amazon S3 objects encrypted with AWS KMS." - } - }, - "type": "object" - }, - "SseKmsEncryptedObjects": { - "additionalProperties": false, - "description": "A container for filter information for the selection of S3 objects encrypted with AWS KMS.", - "properties": { - "Status": { - "description": "Specifies whether Amazon S3 replicates objects created with server-side encryption using a customer master key (CMK) stored in AWS Key Management Service.", - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "StorageClassAnalysis": { - "additionalProperties": false, - "description": "Specifies data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes for an Amazon S3 bucket.", - "properties": { - "DataExport": { - "$ref": "#/definitions/DataExport" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "description": "Tags to use to identify a subset of objects for an Amazon S3 bucket.", - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "Tiering": { - "additionalProperties": false, - "properties": { - "AccessTier": { - "description": "S3 Intelligent-Tiering access tier. See Storage class for automatically optimizing frequently and infrequently accessed objects for a list of access tiers in the S3 Intelligent-Tiering storage class.", - "enum": [ - "ARCHIVE_ACCESS", - "DEEP_ARCHIVE_ACCESS" - ], - "type": "string" - }, - "Days": { - "description": "The number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier. The minimum number of days specified for Archive Access tier must be at least 90 days and Deep Archive Access tier must be at least 180 days. The maximum can be up to 2 years (730 days).", - "type": "integer" - } - }, - "required": [ - "AccessTier", - "Days" - ], - "type": "object" - }, - "TopicConfiguration": { - "additionalProperties": false, - "description": "The topic to which notifications are sent and the events for which notifications are generated.", - "properties": { - "Event": { - "description": "The Amazon S3 bucket event about which to send notifications.", - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter", - "description": "The filtering rules that determine for which objects to send notifications." - }, - "Topic": { - "description": "The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 publishes a message when it detects events of the specified type.", - "type": "string" - } - }, - "required": [ - "Event", - "Topic" - ], - "type": "object" - }, - "Transition": { - "additionalProperties": false, - "description": "You must specify at least one of \"TransitionDate\" and \"TransitionInDays\"", - "properties": { - "StorageClass": { - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "Glacier", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "STANDARD_IA" - ], - "type": "string" - }, - "TransitionDate": { - "$ref": "#/definitions/iso8601UTC" - }, - "TransitionInDays": { - "type": "integer" - } - }, - "required": [ - "StorageClass" - ], - "type": "object" - }, - "VersioningConfiguration": { - "additionalProperties": false, - "description": "Describes the versioning state of an Amazon S3 bucket.", - "properties": { - "Status": { - "default": "Suspended", - "description": "The versioning state of the bucket.", - "enum": [ - "Enabled", - "Suspended" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "WebsiteConfiguration": { - "additionalProperties": false, - "description": "Specifies website configuration parameters for an Amazon S3 bucket.", - "properties": { - "ErrorDocument": { - "description": "The name of the error document for the website.", - "type": "string" - }, - "IndexDocument": { - "description": "The name of the index document for the website.", - "type": "string" - }, - "RedirectAllRequestsTo": { - "$ref": "#/definitions/RedirectAllRequestsTo" - }, - "RoutingRules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/RoutingRule" - }, - "type": "array" - } - }, - "type": "object" - }, - "iso8601UTC": { - "description": "The date value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ssZ)", - "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", - "type": "string" - } - }, - "description": "Resource Type definition for AWS::S3::Bucket", - "handlers": { - "create": { - "permissions": [ - "s3:CreateBucket", - "s3:PutBucketTagging", - "s3:PutAnalyticsConfiguration", - "s3:PutEncryptionConfiguration", - "s3:PutBucketCORS", - "s3:PutInventoryConfiguration", - "s3:PutLifecycleConfiguration", - "s3:PutMetricsConfiguration", - "s3:PutBucketNotification", - "s3:PutBucketReplication", - "s3:PutBucketWebsite", - "s3:PutAccelerateConfiguration", - "s3:PutBucketPublicAccessBlock", - "s3:PutReplicationConfiguration", - "s3:PutObjectAcl", - "s3:PutBucketObjectLockConfiguration", - "s3:GetBucketAcl", - "s3:ListBucket", - "iam:PassRole", - "s3:DeleteObject", - "s3:PutBucketLogging", - "s3:PutBucketVersioning", - "s3:PutObjectLockConfiguration", - "s3:PutBucketOwnershipControls", - "s3:PutIntelligentTieringConfiguration" - ] - }, - "delete": { - "permissions": [ - "s3:DeleteBucket", - "s3:ListBucket" - ] - }, - "list": { - "permissions": [ - "s3:ListAllMyBuckets" - ] - }, - "read": { - "permissions": [ - "s3:GetAccelerateConfiguration", - "s3:GetLifecycleConfiguration", - "s3:GetBucketPublicAccessBlock", - "s3:GetAnalyticsConfiguration", - "s3:GetBucketCORS", - "s3:GetEncryptionConfiguration", - "s3:GetInventoryConfiguration", - "s3:GetBucketLogging", - "s3:GetMetricsConfiguration", - "s3:GetBucketNotification", - "s3:GetBucketVersioning", - "s3:GetReplicationConfiguration", - "S3:GetBucketWebsite", - "s3:GetBucketPublicAccessBlock", - "s3:GetBucketObjectLockConfiguration", - "s3:GetBucketTagging", - "s3:GetBucketOwnershipControls", - "s3:GetIntelligentTieringConfiguration", - "s3:ListBucket" - ] - }, - "update": { - "permissions": [ - "s3:PutBucketAcl", - "s3:PutBucketTagging", - "s3:PutAnalyticsConfiguration", - "s3:PutEncryptionConfiguration", - "s3:PutBucketCORS", - "s3:PutInventoryConfiguration", - "s3:PutLifecycleConfiguration", - "s3:PutMetricsConfiguration", - "s3:PutBucketNotification", - "s3:PutBucketReplication", - "s3:PutBucketWebsite", - "s3:PutAccelerateConfiguration", - "s3:PutBucketPublicAccessBlock", - "s3:PutReplicationConfiguration", - "s3:PutBucketOwnershipControls", - "s3:PutIntelligentTieringConfiguration", - "s3:DeleteBucketWebsite", - "s3:PutBucketLogging", - "s3:PutBucketVersioning", - "s3:PutObjectLockConfiguration", - "s3:PutBucketObjectLockConfiguration", - "s3:DeleteBucketAnalyticsConfiguration", - "s3:DeleteBucketCors", - "s3:DeleteBucketMetricsConfiguration", - "s3:DeleteBucketEncryption", - "s3:DeleteBucketLifecycle", - "s3:DeleteBucketReplication", - "iam:PassRole", - "s3:ListBucket" - ] - } - }, - "primaryIdentifier": [ - "/properties/BucketName" - ], - "properties": { - "AccelerateConfiguration": { - "$ref": "#/definitions/AccelerateConfiguration", - "description": "Configuration for the transfer acceleration state." - }, - "AccessControl": { - "description": "A canned access control list (ACL) that grants predefined permissions to the bucket.", - "enum": [ - "AuthenticatedRead", - "AwsExecRead", - "BucketOwnerFullControl", - "BucketOwnerRead", - "LogDeliveryWrite", - "Private", - "PublicRead", - "PublicReadWrite" - ], - "type": "string" - }, - "AnalyticsConfigurations": { - "description": "The configuration and any analyses for the analytics filter of an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/AnalyticsConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "Arn": { - "$ref": "#/definitions/Arn", - "description": "The Amazon Resource Name (ARN) of the specified bucket.", - "examples": [ - "arn:aws:s3:::mybucket" - ] - }, - "BucketEncryption": { - "$ref": "#/definitions/BucketEncryption" - }, - "BucketName": { - "description": "A name for the bucket. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][a-z0-9.-]*[a-z0-9]$", - "type": "string" - }, - "CorsConfiguration": { - "$ref": "#/definitions/CorsConfiguration", - "description": "Rules that define cross-origin resource sharing of objects in this bucket." - }, - "DomainName": { - "description": "The IPv4 DNS name of the specified bucket.", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.amazonaws.com" - ], - "type": "string" - }, - "DualStackDomainName": { - "description": "The IPv6 DNS name of the specified bucket. For more information about dual-stack endpoints, see [Using Amazon S3 Dual-Stack Endpoints](https://docs.aws.amazon.com/AmazonS3/latest/dev/dual-stack-endpoints.html).", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com" - ], - "type": "string" - }, - "IntelligentTieringConfigurations": { - "description": "Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/IntelligentTieringConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "InventoryConfigurations": { - "description": "The inventory configuration for an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/InventoryConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "LifecycleConfiguration": { - "$ref": "#/definitions/LifecycleConfiguration", - "description": "Rules that define how Amazon S3 manages objects during their lifetime." - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration", - "description": "Settings that define where logs are stored." - }, - "MetricsConfigurations": { - "description": "Settings that define a metrics configuration for the CloudWatch request metrics from the bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/MetricsConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "NotificationConfiguration": { - "$ref": "#/definitions/NotificationConfiguration", - "description": "Configuration that defines how Amazon S3 handles bucket notifications." - }, - "ObjectLockConfiguration": { - "$ref": "#/definitions/ObjectLockConfiguration", - "description": "Places an Object Lock configuration on the specified bucket." - }, - "ObjectLockEnabled": { - "description": "Indicates whether this bucket has an Object Lock configuration enabled.", - "type": "boolean" - }, - "OwnershipControls": { - "$ref": "#/definitions/OwnershipControls", - "description": "Specifies the container element for object ownership rules." - }, - "PublicAccessBlockConfiguration": { - "$ref": "#/definitions/PublicAccessBlockConfiguration" - }, - "RegionalDomainName": { - "description": "Returns the regional domain name of the specified bucket.", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.us-east-2.amazonaws.com" - ], - "type": "string" - }, - "ReplicationConfiguration": { - "$ref": "#/definitions/ReplicationConfiguration", - "description": "Configuration for replicating objects in an S3 bucket." - }, - "Tags": { - "description": "An arbitrary set of tags (key-value pairs) for this S3 bucket.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VersioningConfiguration": { - "$ref": "#/definitions/VersioningConfiguration" - }, - "WebsiteConfiguration": { - "$ref": "#/definitions/WebsiteConfiguration" - }, - "WebsiteURL": { - "description": "The Amazon S3 website endpoint for the specified bucket.", - "examples": [ - "Example (IPv4): http://mystack-mybucket-kdwwxmddtr2g.s3-website-us-east-2.amazonaws.com/", - "Example (IPv6): http://mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com/" - ], - "format": "uri", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/DomainName", - "/properties/DualStackDomainName", - "/properties/RegionalDomainName", - "/properties/WebsiteURL" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::S3::Bucket", - "writeOnlyProperties": [ - "/properties/AccessControl", - "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionExpirationInDays", - "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionTransition", - "/properties/LifecycleConfiguration/Rules/*/Transition", - "/properties/ReplicationConfiguration/Rules/*/Prefix", - "/properties/LifecycleConfiguration/Rules/*/ExpiredObjectDeleteMarker" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-securityhub-hub.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-securityhub-hub.json new file mode 100644 index 0000000000..b0401a5225 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-securityhub-hub.json @@ -0,0 +1,28 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::SecurityHub::Hub", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoEnableControls": { + "type": "boolean" + }, + "ControlFindingGenerator": { + "type": "string" + }, + "EnableDefaultStandards": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SecurityHub::Hub" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-servicecatalogappregistry-application.json new file mode 100644 index 0000000000..b04a7d7289 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-servicecatalogappregistry-application.json @@ -0,0 +1,100 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Name" + ] + ], + "additionalProperties": false, + "definitions": { + "Tags": { + "additionalProperties": false, + "maxProperties": 50, + "patternProperties": { + "^[a-zA-Z+-=._:/]+$": { + "maxLength": 256, + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application", + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-application.html", + "handlers": { + "create": { + "permissions": [ + "servicecatalog:CreateApplication", + "servicecatalog:TagResource", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "servicecatalog:DeleteApplication" + ] + }, + "list": { + "permissions": [ + "servicecatalog:ListApplications" + ] + }, + "read": { + "permissions": [ + "servicecatalog:GetApplication" + ] + }, + "update": { + "permissions": [ + "servicecatalog:GetApplication", + "servicecatalog:ListTagsForResource", + "servicecatalog:TagResource", + "servicecatalog:UntagResource", + "servicecatalog:UpdateApplication", + "iam:CreateServiceLinkedRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", + "type": "string" + }, + "Description": { + "description": "The description of the application. ", + "maxLength": 1024, + "type": "string" + }, + "Id": { + "pattern": "[a-z0-9]{26}", + "type": "string" + }, + "Name": { + "description": "The name of the application. ", + "maxLength": 256, + "minLength": 1, + "pattern": "\\w+", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ServiceCatalogAppRegistry::Application" +} 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 02734d6e9c..42b9286649 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py @@ -5,6 +5,7 @@ "AWS::CDK::Metadata", "AWS::ApiGatewayV2::Integration", "AWS::ApiGatewayV2::ApiMapping", + "AWS::CE::AnomalySubscription", "AWS::Shield::DRTAccess", "AWS::SSO::Assignment", "AWS::Glue::Partition", @@ -13,6 +14,7 @@ "AWS::Shield::ProactiveEngagement", "AWS::ApiGateway::BasePathMapping", "AWS::WAFRegional::GeoMatchSet", + "AWS::S3::AccessGrantsLocation", "AWS::GuardDuty::Filter", "AWS::ECS::Service", "AWS::ServiceCatalog::PortfolioPrincipalAssociation", @@ -66,6 +68,7 @@ "AWS::ApiGateway::DomainName", "AWS::ECS::PrimaryTaskSet", "AWS::FMS::ResourceSet", + "AWS::Cognito::UserPoolDomain", "AWS::AutoScaling::AutoScalingGroup", "AWS::WAFv2::RegexPatternSet", "AWS::EKS::FargateProfile", @@ -73,6 +76,7 @@ "AWS::EC2::TransitGatewayRouteTable", "AWS::ControlTower::EnabledControl", "AWS::NetworkManager::ConnectAttachment", + "AWS::S3::AccessGrantsInstance", "AWS::Macie::CustomDataIdentifier", "AWS::Route53::RecordSet", "AWS::ElastiCache::SecurityGroup", @@ -120,6 +124,7 @@ "AWS::EC2::NatGateway", "AWS::InternetMonitor::Monitor", "AWS::Transfer::Workflow", + "AWS::S3::AccessGrant", "AWS::AppConfig::DeploymentStrategy", "AWS::Glue::DevEndpoint", "AWS::SageMaker::ModelPackage", @@ -135,6 +140,7 @@ "AWS::NetworkManager::TransitGatewayRegistration", "AWS::ElastiCache::ReplicationGroup", "AWS::StepFunctions::StateMachineAlias", + "AWS::Cognito::UserPoolResourceServer", "AWS::RDS::GlobalCluster", "AWS::CloudFormation::ModuleDefaultVersion", "AWS::CE::CostCategory", @@ -281,6 +287,7 @@ "AWS::SDB::Domain", "AWS::EC2::SubnetRouteTableAssociation", "AWS::ServiceCatalog::ServiceActionAssociation", + "AWS::Cognito::UserPoolUICustomizationAttachment", "AWS::SageMaker::NotebookInstanceLifecycleConfig", "AWS::ImageBuilder::ContainerRecipe", "AWS::EFS::AccessPoint", @@ -359,6 +366,7 @@ "AWS::ServiceCatalog::AcceptedPortfolioShare", "AWS::Route53Resolver::FirewallRuleGroupAssociation", "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", "AWS::EC2::Subnet", "AWS::CloudTrail::ResourcePolicy", "AWS::S3ObjectLambda::AccessPoint", @@ -500,6 +508,7 @@ "AWS::RDS::EventSubscription", "AWS::Config::AggregationAuthorization", "AWS::DataSync::Agent", + "AWS::Cognito::UserPoolIdentityProvider", "AWS::Logs::LogGroup", "AWS::ECS::Cluster", "AWS::S3::MultiRegionAccessPointPolicy", @@ -611,6 +620,7 @@ "AWS::SageMaker::MonitoringSchedule", "AWS::IAM::OIDCProvider", "AWS::LakeFormation::Tag", + "AWS::CE::AnomalyMonitor", "AWS::ServiceCatalogAppRegistry::ResourceAssociation", "AWS::EC2::VPNGateway", "AWS::CloudFormation::Stack", @@ -676,14 +686,15 @@ cached: List[str] = [ "aws-apigatewayv2-integration.json", "aws-apigatewayv2-apimapping.json", + "aws-ce-anomalysubscription.json", "aws-shield-drtaccess.json", "aws-sso-assignment.json", "aws-glue-partition.json", "aws-ec2-transitgatewayroutetablepropagation.json", "aws-ssm-resourcepolicy.json", "aws-shield-proactiveengagement.json", + "aws-s3-accessgrantslocation.json", "aws-guardduty-filter.json", - "aws-ecs-service.json", "aws-ram-resourceshare.json", "aws-dms-replicationconfig.json", "aws-dynamodb-table.json", @@ -732,6 +743,7 @@ "aws-route53-dnssec.json", "aws-controltower-enabledcontrol.json", "aws-networkmanager-connectattachment.json", + "aws-s3-accessgrantsinstance.json", "aws-macie-customdataidentifier.json", "aws-route53-recordset.json", "aws-elasticache-securitygroup.json", @@ -764,7 +776,6 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", - "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -776,9 +787,11 @@ "aws-ec2-natgateway.json", "aws-internetmonitor-monitor.json", "aws-transfer-workflow.json", + "aws-s3-accessgrant.json", "aws-appconfig-deploymentstrategy.json", "aws-glue-devendpoint.json", "aws-sagemaker-modelpackage.json", + "aws-eventschemas-discoverer.json", "aws-networkmanager-connectpeer.json", "aws-elasticache-usergroup.json", "aws-imagebuilder-imagerecipe.json", @@ -828,7 +841,6 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", - "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-wafregional-xssmatchset.json", "aws-rds-dbproxytargetgroup.json", @@ -840,7 +852,6 @@ "aws-sagemaker-modelpackagegroup.json", "aws-ses-configurationset.json", "aws-elasticache-parametergroup.json", - "aws-codedeploy-deploymentgroup.json", "aws-sagemaker-inferenceexperiment.json", "aws-cloudformation-stackset.json", "aws-ec2-route.json", @@ -873,6 +884,7 @@ "aws-fms-notificationchannel.json", "aws-msk-batchscramsecret.json", "aws-dms-certificate.json", + "aws-s3-bucket.json", "aws-guardduty-ipset.json", "aws-emr-securityconfiguration.json", "aws-cloudwatch-insightrule.json", @@ -990,6 +1002,7 @@ "aws-kms-key.json", "aws-route53resolver-firewallrulegroupassociation.json", "aws-route53resolver-resolverqueryloggingconfig.json", + "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-subnet.json", "aws-cloudtrail-resourcepolicy.json", "aws-s3objectlambda-accesspoint.json", @@ -1027,7 +1040,6 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", - "aws-emr-cluster.json", "aws-apigatewayv2-domainname.json", "aws-rds-dbcluster.json", "aws-servicecatalog-resourceupdateconstraint.json", @@ -1054,6 +1066,7 @@ "aws-elasticloadbalancingv2-targetgroup.json", "aws-applicationautoscaling-scalingpolicy.json", "aws-pipes-pipe.json", + "aws-emr-studiosessionmapping.json", "aws-cloudformation-macro.json", "aws-lambda-layerversionpermission.json", "aws-secretsmanager-secret.json", @@ -1099,7 +1112,6 @@ "aws-networkfirewall-firewallpolicy.json", "aws-eks-identityproviderconfig.json", "aws-ec2-ipamresourcediscoveryassociation.json", - "aws-appsync-graphqlapi.json", "aws-ec2-egressonlyinternetgateway.json", "aws-ec2-vpccidrblock.json", "aws-ec2-networkinsightspath.json", @@ -1126,6 +1138,7 @@ "aws-elasticloadbalancingv2-listenerrule.json", "aws-elasticloadbalancingv2-truststore.json", "aws-ec2-keypair.json", + "aws-fsx-filesystem.json", "aws-mediatailor-livesource.json", "aws-ec2-eipassociation.json", "aws-elasticbeanstalk-application.json", @@ -1215,6 +1228,7 @@ "aws-sagemaker-monitoringschedule.json", "aws-iam-oidcprovider.json", "aws-lakeformation-tag.json", + "aws-ce-anomalymonitor.json", "aws-servicecatalogappregistry-resourceassociation.json", "aws-ec2-vpngateway.json", "aws-cloudformation-stack.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-appsync-graphqlapi.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-appsync-graphqlapi.json new file mode 100644 index 0000000000..077c3fd5af --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-appsync-graphqlapi.json @@ -0,0 +1,222 @@ +{ + "additionalProperties": false, + "definitions": { + "AdditionalAuthenticationProvider": { + "additionalProperties": false, + "properties": { + "AuthenticationType": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "UserPoolConfig": { + "$ref": "#/definitions/CognitoUserPoolConfig" + } + }, + "required": [ + "AuthenticationType" + ], + "type": "object" + }, + "CognitoUserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "LambdaAuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsRoleArn": { + "type": "string" + }, + "ExcludeVerboseContent": { + "type": "boolean" + }, + "FieldLogLevel": { + "type": "string" + } + }, + "type": "object" + }, + "OpenIDConnectConfig": { + "additionalProperties": false, + "properties": { + "AuthTTL": { + "type": "number" + }, + "ClientId": { + "type": "string" + }, + "IatTTL": { + "type": "number" + }, + "Issuer": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "UserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "DefaultAction": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AppSync::GraphQLApi", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalAuthenticationProviders": { + "items": { + "$ref": "#/definitions/AdditionalAuthenticationProvider" + }, + "type": "array", + "uniqueItems": false + }, + "ApiId": { + "type": "string" + }, + "ApiType": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "AuthenticationType": { + "enum": [ + "API_KEY", + "AWS_IAM", + "AMAZON_COGNITO_USER_POOLS", + "OPENID_CONNECT", + "AWS_LAMBDA" + ], + "type": "string" + }, + "GraphQLDns": { + "type": "string" + }, + "GraphQLEndpointArn": { + "type": "string" + }, + "GraphQLUrl": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "LogConfig": { + "$ref": "#/definitions/LogConfig" + }, + "MergedApiExecutionRoleArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "OwnerContact": { + "type": "string" + }, + "RealtimeDns": { + "type": "string" + }, + "RealtimeUrl": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UserPoolConfig": { + "$ref": "#/definitions/UserPoolConfig" + }, + "Visibility": { + "type": "string" + }, + "XrayEnabled": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/ApiId", + "/properties/GraphQLEndpointArn", + "/properties/Id", + "/properties/GraphQLDns", + "/properties/GraphQLUrl", + "/properties/RealtimeDns", + "/properties/RealtimeUrl", + "/properties/Arn" + ], + "required": [ + "Name", + "AuthenticationType" + ], + "typeName": "AWS::AppSync::GraphQLApi" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-codedeploy-deploymentgroup.json new file mode 100644 index 0000000000..208990a115 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-codedeploy-deploymentgroup.json @@ -0,0 +1,523 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentGroupName", + "/properties/ApplicationName" + ], + "definitions": { + "Alarm": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AlarmConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/Alarm" + }, + "type": "array", + "uniqueItems": true + }, + "Enabled": { + "type": "boolean" + }, + "IgnorePollAlarmFailure": { + "type": "boolean" + } + }, + "type": "object" + }, + "AutoRollbackConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Events": { + "items": { + "enum": [ + "DEPLOYMENT_FAILURE", + "DEPLOYMENT_STOP_ON_ALARM", + "DEPLOYMENT_STOP_ON_REQUEST" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "BlueGreenDeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "DeploymentReadyOption": { + "$ref": "#/definitions/DeploymentReadyOption" + }, + "GreenFleetProvisioningOption": { + "$ref": "#/definitions/GreenFleetProvisioningOption" + }, + "TerminateBlueInstancesOnDeploymentSuccess": { + "$ref": "#/definitions/BlueInstanceTerminationOption" + } + }, + "type": "object" + }, + "BlueInstanceTerminationOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "TerminationWaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "Deployment": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "IgnoreApplicationStopFailures": { + "type": "boolean" + }, + "Revision": { + "$ref": "#/definitions/RevisionLocation" + } + }, + "required": [ + "Revision" + ], + "type": "object" + }, + "DeploymentReadyOption": { + "additionalProperties": false, + "properties": { + "ActionOnTimeout": { + "type": "string" + }, + "WaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentStyle": { + "additionalProperties": false, + "properties": { + "DeploymentOption": { + "enum": [ + "WITH_TRAFFIC_CONTROL", + "WITHOUT_TRAFFIC_CONTROL" + ], + "type": "string" + }, + "DeploymentType": { + "enum": [ + "IN_PLACE", + "BLUE_GREEN" + ], + "type": "string" + } + }, + "type": "object" + }, + "EC2TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "EC2TagSet": { + "additionalProperties": false, + "properties": { + "Ec2TagSetList": { + "items": { + "$ref": "#/definitions/EC2TagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EC2TagSetListObject": { + "additionalProperties": false, + "properties": { + "Ec2TagGroup": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ECSService": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + } + }, + "required": [ + "ServiceName", + "ClusterName" + ], + "type": "object" + }, + "ELBInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "GitHubLocation": { + "additionalProperties": false, + "properties": { + "CommitId": { + "type": "string" + }, + "Repository": { + "type": "string" + } + }, + "required": [ + "Repository", + "CommitId" + ], + "type": "object" + }, + "GreenFleetProvisioningOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "type": "object" + }, + "LoadBalancerInfo": { + "additionalProperties": false, + "properties": { + "ElbInfoList": { + "items": { + "$ref": "#/definitions/ELBInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupPairInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupPairInfo" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSet": { + "additionalProperties": false, + "properties": { + "OnPremisesTagSetList": { + "items": { + "$ref": "#/definitions/OnPremisesTagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSetListObject": { + "additionalProperties": false, + "properties": { + "OnPremisesTagGroup": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "RevisionLocation": { + "additionalProperties": false, + "properties": { + "GitHubLocation": { + "$ref": "#/definitions/GitHubLocation" + }, + "RevisionType": { + "type": "string" + }, + "S3Location": { + "$ref": "#/definitions/S3Location" + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "BundleType": { + "type": "string" + }, + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupPairInfo": { + "additionalProperties": false, + "properties": { + "ProdTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + }, + "TargetGroups": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TestTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + } + }, + "type": "object" + }, + "TrafficRoute": { + "additionalProperties": false, + "properties": { + "ListenerArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerEvents": { + "items": { + "enum": [ + "DeploymentStart", + "DeploymentSuccess", + "DeploymentFailure", + "DeploymentStop", + "DeploymentRollback", + "DeploymentReady", + "InstanceStart", + "InstanceSuccess", + "InstanceFailure", + "InstanceReady" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "TriggerName": { + "type": "string" + }, + "TriggerTargetArn": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AlarmConfiguration": { + "$ref": "#/definitions/AlarmConfiguration" + }, + "ApplicationName": { + "type": "string" + }, + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AutoRollbackConfiguration" + }, + "AutoScalingGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BlueGreenDeploymentConfiguration": { + "$ref": "#/definitions/BlueGreenDeploymentConfiguration" + }, + "Deployment": { + "$ref": "#/definitions/Deployment" + }, + "DeploymentConfigName": { + "type": "string" + }, + "DeploymentGroupName": { + "type": "string" + }, + "DeploymentStyle": { + "$ref": "#/definitions/DeploymentStyle" + }, + "ECSServices": { + "items": { + "$ref": "#/definitions/ECSService" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagFilters": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagSet": { + "$ref": "#/definitions/EC2TagSet" + }, + "Id": { + "type": "string" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/LoadBalancerInfo" + }, + "OnPremisesInstanceTagFilters": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "OnPremisesTagSet": { + "$ref": "#/definitions/OnPremisesTagSet" + }, + "OutdatedInstancesStrategy": { + "type": "string" + }, + "ServiceRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TerminationHookEnabled": { + "type": "boolean" + }, + "TriggerConfigurations": { + "items": { + "$ref": "#/definitions/TriggerConfig" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "ServiceRoleArn" + ], + "typeName": "AWS::CodeDeploy::DeploymentGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-cognito-userpooldomain.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-cognito-userpooldomain.json new file mode 100644 index 0000000000..14941b1aab --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-cognito-userpooldomain.json @@ -0,0 +1,84 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/UserPoolId", + "/properties/Domain" + ], + "definitions": { + "CustomDomainConfigType": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Cognito::UserPoolDomain", + "handlers": { + "create": { + "permissions": [ + "cognito-idp:CreateUserPoolDomain", + "cognito-idp:DescribeUserPoolDomain", + "cloudfront:updateDistribution", + "iam:PassRole" + ], + "timeoutInMinutes": 20 + }, + "delete": { + "permissions": [ + "cognito-idp:DeleteUserPoolDomain", + "cognito-idp:DescribeUserPoolDomain" + ], + "timeoutInMinutes": 25 + }, + "read": { + "permissions": [ + "cognito-idp:DescribeUserPoolDomain" + ] + }, + "update": { + "permissions": [ + "cognito-idp:UpdateUserPoolDomain", + "cognito-idp:DescribeUserPoolDomain", + "cloudfront:updateDistribution", + "iam:PassRole" + ], + "timeoutInMinutes": 20 + } + }, + "primaryIdentifier": [ + "/properties/UserPoolId", + "/properties/Domain" + ], + "properties": { + "CloudFrontDistribution": { + "type": "string" + }, + "CustomDomainConfig": { + "$ref": "#/definitions/CustomDomainConfigType" + }, + "Domain": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CloudFrontDistribution" + ], + "required": [ + "UserPoolId", + "Domain" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::Cognito::UserPoolDomain" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-cognito-userpoolidentityprovider.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-cognito-userpoolidentityprovider.json new file mode 100644 index 0000000000..cbd78674e1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-cognito-userpoolidentityprovider.json @@ -0,0 +1,102 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/UserPoolId", + "/properties/ProviderName", + "/properties/ProviderType" + ], + "description": "Resource Type definition for AWS::Cognito::UserPoolIdentityProvider", + "handlers": { + "create": { + "permissions": [ + "cognito-idp:CreateIdentityProvider" + ], + "timeoutInMinutes": 2 + }, + "delete": { + "permissions": [ + "cognito-idp:DeleteIdentityProvider" + ], + "timeoutInMinutes": 2 + }, + "list": { + "handlerSchema": { + "properties": { + "UserPoolId": { + "$ref": "resource-schema.json#/properties/UserPoolId" + } + }, + "required": [ + "UserPoolId" + ] + }, + "permissions": [ + "cognito-idp:ListIdentityProviders" + ] + }, + "read": { + "permissions": [ + "cognito-idp:DescribeIdentityProvider" + ] + }, + "update": { + "permissions": [ + "cognito-idp:UpdateIdentityProvider" + ], + "timeoutInMinutes": 2 + } + }, + "primaryIdentifier": [ + "/properties/UserPoolId", + "/properties/ProviderName" + ], + "properties": { + "AttributeMapping": { + "additionalProperties": false, + "patternProperties": { + "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$": { + "type": "string" + } + }, + "type": "object" + }, + "IdpIdentifiers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ProviderDetails": { + "additionalProperties": false, + "patternProperties": { + "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$": { + "type": "string" + } + }, + "type": "object" + }, + "ProviderName": { + "type": "string" + }, + "ProviderType": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "required": [ + "UserPoolId", + "ProviderName", + "ProviderType", + "ProviderDetails" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::Cognito::UserPoolIdentityProvider" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-cognito-userpoolresourceserver.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-cognito-userpoolresourceserver.json new file mode 100644 index 0000000000..41f8ec3073 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-cognito-userpoolresourceserver.json @@ -0,0 +1,102 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/UserPoolId", + "/properties/Identifier" + ], + "definitions": { + "ResourceServerScopeType": { + "additionalProperties": false, + "properties": { + "ScopeDescription": { + "type": "string" + }, + "ScopeName": { + "type": "string" + } + }, + "required": [ + "ScopeDescription", + "ScopeName" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Cognito::UserPoolResourceServer", + "handlers": { + "create": { + "permissions": [ + "cognito-idp:CreateResourceServer", + "iam:PassRole" + ], + "timeoutInMinutes": 2 + }, + "delete": { + "permissions": [ + "cognito-idp:DeleteResourceServer" + ], + "timeoutInMinutes": 2 + }, + "list": { + "handlerSchema": { + "properties": { + "UserPoolId": { + "$ref": "resource-schema.json#/properties/UserPoolId" + } + }, + "required": [ + "UserPoolId" + ] + }, + "permissions": [ + "cognito-idp:ListResourceServers" + ] + }, + "read": { + "permissions": [ + "cognito-idp:DescribeResourceServer" + ] + }, + "update": { + "permissions": [ + "cognito-idp:UpdateResourceServer", + "iam:PassRole" + ], + "timeoutInMinutes": 2 + } + }, + "primaryIdentifier": [ + "/properties/UserPoolId", + "/properties/Identifier" + ], + "properties": { + "Identifier": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scopes": { + "items": { + "$ref": "#/definitions/ResourceServerScopeType" + }, + "type": "array" + }, + "UserPoolId": { + "type": "string" + } + }, + "required": [ + "UserPoolId", + "Identifier", + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::Cognito::UserPoolResourceServer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-cognito-userpooluicustomizationattachment.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-cognito-userpooluicustomizationattachment.json new file mode 100644 index 0000000000..21c04fa357 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-cognito-userpooluicustomizationattachment.json @@ -0,0 +1,62 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/UserPoolId", + "/properties/ClientId" + ], + "description": "Resource Type definition for AWS::Cognito::UserPoolUICustomizationAttachment", + "handlers": { + "create": { + "permissions": [ + "cognito-idp:SetUICustomization", + "cognito-idp:GetUICustomization" + ], + "timeoutInMinutes": 2 + }, + "delete": { + "permissions": [ + "cognito-idp:SetUICustomization", + "cognito-idp:GetUICustomization" + ], + "timeoutInMinutes": 2 + }, + "read": { + "permissions": [ + "cognito-idp:GetUICustomization" + ] + }, + "update": { + "permissions": [ + "cognito-idp:SetUICustomization" + ], + "timeoutInMinutes": 2 + } + }, + "primaryIdentifier": [ + "/properties/UserPoolId", + "/properties/ClientId" + ], + "properties": { + "CSS": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "required": [ + "UserPoolId", + "ClientId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::Cognito::UserPoolUICustomizationAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ecs-service.json new file mode 100644 index 0000000000..1f7b4ccb6e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ecs-service.json @@ -0,0 +1,554 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/DeploymentController", + "/properties/LaunchType", + "/properties/Role", + "/properties/SchedulingStrategy", + "/properties/ServiceName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Rollback", + "Enable" + ], + "type": "object" + }, + "DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "integer" + }, + "MinimumHealthyPercent": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "CODE_DEPLOY", + "ECS", + "EXTERNAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "EBSTagSpecification": { + "properties": { + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "enum": [ + "binpack", + "random", + "spread" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "integer" + }, + "PortName": { + "type": "string" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "ServiceManagedEBSVolumeConfiguration": { + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FilesystemType": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SizeInGiB": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/EBSTagSpecification" + }, + "type": "array" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ECS::Service", + "handlers": { + "create": { + "permissions": [ + "ecs:CreateService", + "ecs:DescribeServices", + "iam:PassRole" + ], + "timeoutInMinutes": 180 + }, + "delete": { + "permissions": [ + "ecs:DeleteService", + "ecs:DescribeServices" + ], + "timeoutInMinutes": 30 + }, + "list": { + "permissions": [ + "ecs:DescribeServices", + "ecs:ListClusters", + "ecs:ListServices" + ] + }, + "read": { + "permissions": [ + "ecs:DescribeServices" + ] + }, + "update": { + "permissions": [ + "ecs:DescribeServices", + "ecs:ListTagsForResource", + "ecs:TagResource", + "ecs:UntagResource", + "ecs:UpdateService" + ], + "timeoutInMinutes": 180 + } + }, + "primaryIdentifier": [ + "/properties/ServiceArn", + "/properties/Cluster" + ], + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "DesiredCount": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "default": "LATEST", + "type": "string" + }, + "PropagateTags": { + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ], + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "enum": [ + "DAEMON", + "REPLICA" + ], + "type": "string" + }, + "ServiceArn": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/ServiceArn", + "/properties/Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ECS::Service", + "writeOnlyProperties": [ + "/properties/ServiceConnectConfiguration" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-emr-cluster.json new file mode 100644 index 0000000000..7ce37fccb6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-emr-cluster.json @@ -0,0 +1,858 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Steps", + "/properties/EbsRootVolumeSize", + "/properties/SecurityConfiguration", + "/properties/ScaleDownBehavior", + "/properties/Configurations", + "/properties/ReleaseLabel", + "/properties/BootstrapActions", + "/properties/EbsRootVolumeIops", + "/properties/KerberosAttributes", + "/properties/ServiceRole", + "/properties/LogEncryptionKmsKeyId", + "/properties/Name", + "/properties/EbsRootVolumeThroughput", + "/properties/JobFlowRole", + "/properties/AdditionalInfo", + "/properties/LogUri", + "/properties/CustomAmiId", + "/properties/PlacementGroupConfigs", + "/properties/OSReleaseLabel", + "/properties/AutoScalingRole", + "/properties/Applications" + ], + "definitions": { + "Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ScalingRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/ScriptBootstrapActionConfig" + } + }, + "required": [ + "ScriptBootstrapAction", + "Name" + ], + "type": "object" + }, + "CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "EvaluationPeriods": { + "type": "integer" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "integer" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "ComparisonOperator", + "Period", + "Threshold" + ], + "type": "object" + }, + "ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "integer" + }, + "MaximumCoreCapacityUnits": { + "type": "integer" + }, + "MaximumOnDemandCapacityUnits": { + "type": "integer" + }, + "MinimumCapacityUnits": { + "type": "integer" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "UnitType", + "MaximumCapacityUnits", + "MinimumCapacityUnits" + ], + "type": "object" + }, + "Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "integer" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/EbsBlockDeviceConfig" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/KeyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/InstanceTypeConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchSpecifications": { + "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "integer" + }, + "TargetSpotCapacity": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/OnDemandProvisioningSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/SpotProvisioningSpecification" + } + }, + "type": "object" + }, + "InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceType": { + "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", + "type": "string" + }, + "WeightedCapacity": { + "type": "integer" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/ComputeLimits" + } + }, + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "PlacementGroupConfig": { + "additionalProperties": false, + "properties": { + "InstanceRole": { + "type": "string" + }, + "PlacementStrategy": { + "type": "string" + } + }, + "required": [ + "InstanceRole" + ], + "type": "object" + }, + "PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/ScalingTrigger" + } + }, + "required": [ + "Action", + "Trigger", + "Name" + ], + "type": "object" + }, + "ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BlockDurationMinutes": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "integer" + } + }, + "required": [ + "TimeoutDurationMinutes", + "TimeoutAction" + ], + "type": "object" + }, + "StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "integer" + }, + "SizeInGB": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EMR::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/Application" + }, + "type": "array", + "uniqueItems": true + }, + "AutoScalingRole": { + "type": "string" + }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AutoTerminationPolicy" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/BootstrapActionConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeIops": { + "type": "integer" + }, + "EbsRootVolumeSize": { + "type": "integer" + }, + "EbsRootVolumeThroughput": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Instances": { + "$ref": "#/definitions/JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/KerberosAttributes" + }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, + "LogUri": { + "type": "string" + }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/ManagedScalingPolicy" + }, + "MasterPublicDNS": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OSReleaseLabel": { + "type": "string" + }, + "PlacementGroupConfigs": { + "items": { + "$ref": "#/definitions/PlacementGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "StepConcurrencyLevel": { + "type": "integer" + }, + "Steps": { + "items": { + "$ref": "#/definitions/StepConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/MasterPublicDNS" + ], + "required": [ + "Instances", + "ServiceRole", + "JobFlowRole", + "Name" + ], + "typeName": "AWS::EMR::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-emr-studiosessionmapping.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-emr-studiosessionmapping.json deleted file mode 100644 index 793e843961..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-emr-studiosessionmapping.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StudioId", - "/properties/IdentityType", - "/properties/IdentityName" - ], - "definitions": { - "IamPolicyArn": { - "pattern": "^arn:aws(-(cn|us-gov))?:iam::([0-9]{12})?:policy\\/[^.]+$", - "type": "string" - } - }, - "description": "An example resource schema demonstrating some basic constructs and validation rules.", - "documentationUrl": "https://docs.aws.amazon.com/cli/latest/reference/emr/create-studio-session-mapping.html", - "handlers": { - "create": { - "permissions": [ - "elasticmapreduce:CreateStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:ListDirectoryAssociations", - "sso:GetProfile", - "sso:ListProfiles", - "sso:AssociateProfile" - ] - }, - "delete": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "elasticmapreduce:DeleteStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance", - "sso:ListDirectoryAssociations", - "sso:GetProfile", - "sso:ListProfiles", - "sso:DisassociateProfile" - ] - }, - "list": { - "permissions": [ - "elasticmapreduce:ListStudioSessionMappings" - ] - }, - "read": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance" - ] - }, - "update": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "elasticmapreduce:UpdateStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance" - ] - } - }, - "primaryIdentifier": [ - "/properties/StudioId", - "/properties/IdentityType", - "/properties/IdentityName" - ], - "properties": { - "IdentityName": { - "description": "The name of the user or group. For more information, see UserName and DisplayName in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId must be specified.", - "type": "string" - }, - "IdentityType": { - "description": "Specifies whether the identity to map to the Studio is a user or a group.", - "enum": [ - "USER", - "GROUP" - ], - "type": "string" - }, - "SessionPolicyArn": { - "$ref": "#/definitions/IamPolicyArn", - "description": "The Amazon Resource Name (ARN) for the session policy that will be applied to the user or group. Session policies refine Studio user permissions without the need to use multiple IAM user roles." - }, - "StudioId": { - "description": "The ID of the Amazon EMR Studio to which the user or group will be mapped.", - "maxLength": 256, - "minLength": 4, - "pattern": "^es-[0-9A-Z]+", - "type": "string" - } - }, - "required": [ - "StudioId", - "IdentityName", - "IdentityType", - "SessionPolicyArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::EMR::StudioSessionMapping" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-eventschemas-discoverer.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-eventschemas-discoverer.json deleted file mode 100644 index 791d433995..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-eventschemas-discoverer.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SourceArn" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EventSchemas::Discoverer", - "primaryIdentifier": [ - "/properties/DiscovererId" - ], - "properties": { - "CrossAccount": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DiscovererArn": { - "type": "string" - }, - "DiscovererId": { - "type": "string" - }, - "SourceArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/DiscovererId", - "/properties/DiscovererArn" - ], - "required": [ - "SourceArn" - ], - "typeName": "AWS::EventSchemas::Discoverer" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-fsx-filesystem.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-fsx-filesystem.json deleted file mode 100644 index 91f1d150ed..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-fsx-filesystem.json +++ /dev/null @@ -1,440 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/KmsKeyId", - "/properties/SecurityGroupIds", - "/properties/FileSystemTypeVersion", - "/properties/FileSystemType", - "/properties/SubnetIds", - "/properties/BackupId" - ], - "definitions": { - "AuditLogConfiguration": { - "additionalProperties": false, - "properties": { - "AuditLogDestination": { - "type": "string" - }, - "FileAccessAuditLogLevel": { - "type": "string" - }, - "FileShareAccessAuditLogLevel": { - "type": "string" - } - }, - "required": [ - "FileAccessAuditLogLevel", - "FileShareAccessAuditLogLevel" - ], - "type": "object" - }, - "ClientConfigurations": { - "additionalProperties": false, - "properties": { - "Clients": { - "type": "string" - }, - "Options": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "DiskIopsConfiguration": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "Mode": { - "type": "string" - } - }, - "type": "object" - }, - "LustreConfiguration": { - "additionalProperties": false, - "properties": { - "AutoImportPolicy": { - "type": "string" - }, - "AutomaticBackupRetentionDays": { - "type": "integer" - }, - "CopyTagsToBackups": { - "type": "boolean" - }, - "DailyAutomaticBackupStartTime": { - "type": "string" - }, - "DataCompressionType": { - "type": "string" - }, - "DeploymentType": { - "type": "string" - }, - "DriveCacheType": { - "type": "string" - }, - "ExportPath": { - "type": "string" - }, - "ImportPath": { - "type": "string" - }, - "ImportedFileChunkSize": { - "type": "integer" - }, - "PerUnitStorageThroughput": { - "type": "integer" - }, - "WeeklyMaintenanceStartTime": { - "type": "string" - } - }, - "type": "object" - }, - "NfsExports": { - "additionalProperties": false, - "properties": { - "ClientConfigurations": { - "items": { - "$ref": "#/definitions/ClientConfigurations" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "OntapConfiguration": { - "additionalProperties": false, - "properties": { - "AutomaticBackupRetentionDays": { - "type": "integer" - }, - "DailyAutomaticBackupStartTime": { - "type": "string" - }, - "DeploymentType": { - "type": "string" - }, - "DiskIopsConfiguration": { - "$ref": "#/definitions/DiskIopsConfiguration" - }, - "EndpointIpAddressRange": { - "type": "string" - }, - "FsxAdminPassword": { - "type": "string" - }, - "PreferredSubnetId": { - "type": "string" - }, - "RouteTableIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "ThroughputCapacity": { - "type": "integer" - }, - "WeeklyMaintenanceStartTime": { - "type": "string" - } - }, - "required": [ - "DeploymentType" - ], - "type": "object" - }, - "OpenZFSConfiguration": { - "additionalProperties": false, - "properties": { - "AutomaticBackupRetentionDays": { - "type": "integer" - }, - "CopyTagsToBackups": { - "type": "boolean" - }, - "CopyTagsToVolumes": { - "type": "boolean" - }, - "DailyAutomaticBackupStartTime": { - "type": "string" - }, - "DeploymentType": { - "type": "string" - }, - "DiskIopsConfiguration": { - "$ref": "#/definitions/DiskIopsConfiguration" - }, - "EndpointIpAddressRange": { - "type": "string" - }, - "Options": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "PreferredSubnetId": { - "type": "string" - }, - "RootVolumeConfiguration": { - "$ref": "#/definitions/RootVolumeConfiguration" - }, - "RouteTableIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "ThroughputCapacity": { - "type": "integer" - }, - "WeeklyMaintenanceStartTime": { - "type": "string" - } - }, - "required": [ - "DeploymentType" - ], - "type": "object" - }, - "RootVolumeConfiguration": { - "additionalProperties": false, - "properties": { - "CopyTagsToSnapshots": { - "type": "boolean" - }, - "DataCompressionType": { - "type": "string" - }, - "NfsExports": { - "items": { - "$ref": "#/definitions/NfsExports" - }, - "type": "array", - "uniqueItems": false - }, - "ReadOnly": { - "type": "boolean" - }, - "RecordSizeKiB": { - "type": "integer" - }, - "UserAndGroupQuotas": { - "items": { - "$ref": "#/definitions/UserAndGroupQuotas" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "SelfManagedActiveDirectoryConfiguration": { - "additionalProperties": false, - "properties": { - "DnsIps": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "DomainName": { - "type": "string" - }, - "FileSystemAdministratorsGroup": { - "type": "string" - }, - "OrganizationalUnitDistinguishedName": { - "type": "string" - }, - "Password": { - "type": "string" - }, - "UserName": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "UserAndGroupQuotas": { - "additionalProperties": false, - "properties": { - "Id": { - "type": "integer" - }, - "StorageCapacityQuotaGiB": { - "type": "integer" - }, - "Type": { - "type": "string" - } - }, - "type": "object" - }, - "WindowsConfiguration": { - "additionalProperties": false, - "properties": { - "ActiveDirectoryId": { - "type": "string" - }, - "Aliases": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "AuditLogConfiguration": { - "$ref": "#/definitions/AuditLogConfiguration" - }, - "AutomaticBackupRetentionDays": { - "type": "integer" - }, - "CopyTagsToBackups": { - "type": "boolean" - }, - "DailyAutomaticBackupStartTime": { - "type": "string" - }, - "DeploymentType": { - "type": "string" - }, - "DiskIopsConfiguration": { - "$ref": "#/definitions/DiskIopsConfiguration" - }, - "PreferredSubnetId": { - "type": "string" - }, - "SelfManagedActiveDirectoryConfiguration": { - "$ref": "#/definitions/SelfManagedActiveDirectoryConfiguration" - }, - "ThroughputCapacity": { - "type": "integer" - }, - "WeeklyMaintenanceStartTime": { - "type": "string" - } - }, - "required": [ - "ThroughputCapacity" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::FSx::FileSystem", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "BackupId": { - "type": "string" - }, - "DNSName": { - "type": "string" - }, - "FileSystemType": { - "type": "string" - }, - "FileSystemTypeVersion": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "KmsKeyId": { - "type": "string" - }, - "LustreConfiguration": { - "$ref": "#/definitions/LustreConfiguration" - }, - "LustreMountName": { - "type": "string" - }, - "OntapConfiguration": { - "$ref": "#/definitions/OntapConfiguration" - }, - "OpenZFSConfiguration": { - "$ref": "#/definitions/OpenZFSConfiguration" - }, - "ResourceARN": { - "type": "string" - }, - "RootVolumeId": { - "type": "string" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "StorageCapacity": { - "maximum": 65536, - "minimum": 32, - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "WindowsConfiguration": { - "$ref": "#/definitions/WindowsConfiguration" - } - }, - "readOnlyProperties": [ - "/properties/ResourceARN", - "/properties/Id", - "/properties/LustreMountName", - "/properties/RootVolumeId", - "/properties/DNSName" - ], - "required": [ - "FileSystemType", - "SubnetIds" - ], - "typeName": "AWS::FSx::FileSystem" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-imagebuilder-image.json new file mode 100644 index 0000000000..5582329923 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-imagebuilder-image.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ImageRecipeArn", + "/properties/ContainerRecipeArn", + "/properties/InfrastructureConfigurationArn", + "/properties/DistributionConfigurationArn", + "/properties/ImageTestsConfiguration", + "/properties/ImageScanningConfiguration", + "/properties/EnhancedImageMetadataEnabled", + "/properties/Tags" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Contains settings for Image Builder image resource and container image scans.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "The image tests configuration used when creating this image.", + "properties": { + "ImageTestsEnabled": { + "description": "ImageTestsEnabled", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "TimeoutMinutes", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::ImageBuilder::Image", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:GetImage", + "imagebuilder:CreateImage", + "imagebuilder:TagResource", + "inspector2:BatchGetAccountStatus" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "imagebuilder:GetImage", + "imagebuilder:DeleteImage", + "imagebuilder:UnTagResource", + "imagebuilder:CancelImageCreation" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListImages" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImage" + ] + } + }, + "oneOf": [ + { + "required": [ + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ImageId": { + "description": "The AMI ID of the EC2 AMI in current region.", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration used when creating this image." + }, + "ImageUri": { + "description": "URI for containers created in current Region with default ECR image tag", + "type": "string" + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", + "type": "string" + }, + "Name": { + "description": "The name of the image.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the image.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Name", + "/properties/ImageId", + "/properties/ImageUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Image" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-imagebuilder-imagepipeline.json new file mode 100644 index 0000000000..5b70e0ff38 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-imagebuilder-imagepipeline.json @@ -0,0 +1,213 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "Image tests configuration.", + "properties": { + "ImageTestsEnabled": { + "description": "Defines if tests should be executed when building this image.", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "The maximum time in minutes that tests are permitted to run.", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "description": "The schedule of the image pipeline.", + "properties": { + "PipelineExecutionStartCondition": { + "description": "The condition configures when the pipeline should trigger a new image build.", + "enum": [ + "EXPRESSION_MATCH_ONLY", + "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + ], + "type": "string" + }, + "ScheduleExpression": { + "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:CreateImagePipeline", + "imagebuilder:GetWorkflow", + "inspector2:BatchGetAccountStatus" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:UnTagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:DeleteImagePipeline" + ] + }, + "list": { + "permissions": [ + "imagebuilder:ListImagePipelines" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImagePipeline" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "imagebuilder:GetImagePipeline", + "imagebuilder:UpdateImagePipeline", + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Name", + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "Name", + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image pipeline.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "Description": { + "description": "The description of the image pipeline.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration of the image pipeline." + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", + "type": "string" + }, + "Name": { + "description": "The name of the image pipeline.", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule", + "description": "The schedule of the image pipeline." + }, + "Status": { + "description": "The status of the image pipeline.", + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags of this image pipeline.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::ImagePipeline" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-s3-bucket.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-s3-bucket.json deleted file mode 100644 index 5f53f45913..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-s3-bucket.json +++ /dev/null @@ -1,1645 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/BucketName", - "/properties/ObjectLockEnabled" - ], - "definitions": { - "AbortIncompleteMultipartUpload": { - "additionalProperties": false, - "description": "Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload.", - "properties": { - "DaysAfterInitiation": { - "description": "Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload.", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "DaysAfterInitiation" - ], - "type": "object" - }, - "AccelerateConfiguration": { - "additionalProperties": false, - "properties": { - "AccelerationStatus": { - "description": "Configures the transfer acceleration state for an Amazon S3 bucket.", - "enum": [ - "Enabled", - "Suspended" - ], - "type": "string" - } - }, - "required": [ - "AccelerationStatus" - ], - "type": "object" - }, - "AccessControlTranslation": { - "additionalProperties": false, - "description": "Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS account that owns the source object.", - "properties": { - "Owner": { - "const": "Destination", - "type": "string" - } - }, - "required": [ - "Owner" - ], - "type": "object" - }, - "AnalyticsConfiguration": { - "additionalProperties": false, - "description": "Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.", - "properties": { - "Id": { - "description": "The ID that identifies the analytics configuration.", - "type": "string" - }, - "Prefix": { - "description": "The prefix that an object must have to be included in the analytics results.", - "type": "string" - }, - "StorageClassAnalysis": { - "$ref": "#/definitions/StorageClassAnalysis" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "StorageClassAnalysis", - "Id" - ], - "type": "object" - }, - "Arn": { - "description": "the Amazon Resource Name (ARN) of the specified bucket.", - "type": "string" - }, - "BucketEncryption": { - "additionalProperties": false, - "description": "Specifies default encryption for a bucket using server-side encryption with either Amazon S3-managed keys (SSE-S3) or AWS KMS-managed keys (SSE-KMS).", - "properties": { - "ServerSideEncryptionConfiguration": { - "description": "Specifies the default server-side-encryption configuration.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ServerSideEncryptionRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "ServerSideEncryptionConfiguration" - ], - "type": "object" - }, - "CorsConfiguration": { - "additionalProperties": false, - "properties": { - "CorsRules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/CorsRule", - "maxLength": 100 - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "CorsRules" - ], - "type": "object" - }, - "CorsRule": { - "additionalProperties": false, - "description": "A set of origins and methods (cross-origin access that you want to allow). You can add up to 100 rules to the configuration.", - "properties": { - "AllowedHeaders": { - "description": "Headers that are specified in the Access-Control-Request-Headers header.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AllowedMethods": { - "description": "An HTTP method that you allow the origin to execute.", - "insertionOrder": true, - "items": { - "enum": [ - "GET", - "PUT", - "HEAD", - "POST", - "DELETE" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AllowedOrigins": { - "description": "One or more origins you want customers to be able to access the bucket from.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "ExposedHeaders": { - "description": "One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object).", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Id": { - "description": "A unique identifier for this rule.", - "maxLength": 255, - "type": "string" - }, - "MaxAge": { - "description": "The time in seconds that your browser is to cache the preflight response for the specified resource.", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AllowedMethods", - "AllowedOrigins" - ], - "type": "object" - }, - "DataExport": { - "additionalProperties": false, - "description": "Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.", - "properties": { - "Destination": { - "$ref": "#/definitions/Destination" - }, - "OutputSchemaVersion": { - "const": "V_1", - "description": "The version of the output schema to use when exporting data.", - "type": "string" - } - }, - "required": [ - "Destination", - "OutputSchemaVersion" - ], - "type": "object" - }, - "DefaultRetention": { - "additionalProperties": false, - "description": "The default retention period that you want to apply to new objects placed in the specified bucket.", - "properties": { - "Days": { - "type": "integer" - }, - "Mode": { - "enum": [ - "COMPLIANCE", - "GOVERNANCE" - ], - "type": "string" - }, - "Years": { - "type": "integer" - } - }, - "type": "object" - }, - "DeleteMarkerReplication": { - "additionalProperties": false, - "properties": { - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "type": "object" - }, - "Destination": { - "additionalProperties": false, - "description": "Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC).", - "properties": { - "BucketAccountId": { - "description": "The account ID that owns the destination S3 bucket. ", - "type": "string" - }, - "BucketArn": { - "description": "The Amazon Resource Name (ARN) of the bucket to which data is exported.", - "type": "string" - }, - "Format": { - "description": "Specifies the file format used when exporting data to Amazon S3.", - "enum": [ - "CSV", - "ORC", - "Parquet" - ], - "type": "string" - }, - "Prefix": { - "description": "The prefix to use when exporting data. The prefix is prepended to all results.", - "type": "string" - } - }, - "required": [ - "BucketArn", - "Format" - ], - "type": "object" - }, - "EncryptionConfiguration": { - "additionalProperties": false, - "description": "Specifies encryption-related information for an Amazon S3 bucket that is a destination for replicated objects.", - "properties": { - "ReplicaKmsKeyID": { - "description": "Specifies the ID (Key ARN or Alias ARN) of the customer managed customer master key (CMK) stored in AWS Key Management Service (KMS) for the destination bucket.", - "type": "string" - } - }, - "required": [ - "ReplicaKmsKeyID" - ], - "type": "object" - }, - "EventBridgeConfiguration": { - "additionalProperties": false, - "description": "Describes the Amazon EventBridge notification configuration for an Amazon S3 bucket.", - "properties": { - "EventBridgeEnabled": { - "default": "true", - "description": "Specifies whether to send notifications to Amazon EventBridge when events occur in an Amazon S3 bucket.", - "type": "boolean" - } - }, - "required": [ - "EventBridgeEnabled" - ], - "type": "object" - }, - "FilterRule": { - "additionalProperties": false, - "description": "Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.", - "properties": { - "Name": { - "maxLength": 1024, - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Name" - ], - "type": "object" - }, - "IntelligentTieringConfiguration": { - "additionalProperties": false, - "properties": { - "Id": { - "description": "The ID used to identify the S3 Intelligent-Tiering configuration.", - "type": "string" - }, - "Prefix": { - "description": "An object key name prefix that identifies the subset of objects to which the rule applies.", - "type": "string" - }, - "Status": { - "description": "Specifies the status of the configuration.", - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - }, - "TagFilters": { - "description": "A container for a key-value pair.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Tierings": { - "description": "Specifies a list of S3 Intelligent-Tiering storage class tiers in the configuration. At least one tier must be defined in the list. At most, you can specify two tiers in the list, one for each available AccessTier: ARCHIVE_ACCESS and DEEP_ARCHIVE_ACCESS.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Tiering" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Id", - "Status", - "Tierings" - ], - "type": "object" - }, - "InventoryConfiguration": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/Destination" - }, - "Enabled": { - "description": "Specifies whether the inventory is enabled or disabled.", - "type": "boolean" - }, - "Id": { - "description": "The ID used to identify the inventory configuration.", - "type": "string" - }, - "IncludedObjectVersions": { - "description": "Object versions to include in the inventory list.", - "enum": [ - "All", - "Current" - ], - "type": "string" - }, - "OptionalFields": { - "description": "Contains the optional fields that are included in the inventory results.", - "insertionOrder": true, - "items": { - "enum": [ - "Size", - "LastModifiedDate", - "StorageClass", - "ETag", - "IsMultipartUploaded", - "ReplicationStatus", - "EncryptionStatus", - "ObjectLockRetainUntilDate", - "ObjectLockMode", - "ObjectLockLegalHoldStatus", - "IntelligentTieringAccessTier", - "BucketKeyStatus", - "ChecksumAlgorithm" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Prefix": { - "description": "The prefix that is prepended to all inventory results.", - "type": "string" - }, - "ScheduleFrequency": { - "description": "Specifies the schedule for generating inventory results.", - "enum": [ - "Daily", - "Weekly" - ], - "type": "string" - } - }, - "required": [ - "Destination", - "Enabled", - "Id", - "IncludedObjectVersions", - "ScheduleFrequency" - ], - "type": "object" - }, - "LambdaConfiguration": { - "additionalProperties": false, - "description": "Describes the AWS Lambda functions to invoke and the events for which to invoke them.", - "properties": { - "Event": { - "description": "The Amazon S3 bucket event for which to invoke the AWS Lambda function.", - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter", - "description": "The filtering rules that determine which objects invoke the AWS Lambda function." - }, - "Function": { - "description": "The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3 invokes when the specified event type occurs.", - "type": "string" - } - }, - "required": [ - "Function", - "Event" - ], - "type": "object" - }, - "LifecycleConfiguration": { - "additionalProperties": false, - "properties": { - "Rules": { - "description": "A lifecycle rule for individual objects in an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Rule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "DestinationBucketName": { - "description": "The name of an Amazon S3 bucket where Amazon S3 store server access log files. You can store log files in any bucket that you own. By default, logs are stored in the bucket where the LoggingConfiguration property is defined.", - "type": "string" - }, - "LogFilePrefix": { - "type": "string" - } - }, - "type": "object" - }, - "Metrics": { - "additionalProperties": false, - "properties": { - "EventThreshold": { - "$ref": "#/definitions/ReplicationTimeValue" - }, - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "MetricsConfiguration": { - "additionalProperties": false, - "properties": { - "AccessPointArn": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Prefix": { - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Id" - ], - "type": "object" - }, - "NoncurrentVersionExpiration": { - "additionalProperties": false, - "description": "Container for the expiration rule that describes when noncurrent objects are expired. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 expire noncurrent object versions at a specific period in the object's lifetime", - "properties": { - "NewerNoncurrentVersions": { - "description": "Specified the number of newer noncurrent and current versions that must exists before performing the associated action", - "type": "integer" - }, - "NoncurrentDays": { - "description": "Specified the number of days an object is noncurrent before Amazon S3 can perform the associated action", - "type": "integer" - } - }, - "required": [ - "NoncurrentDays" - ], - "type": "object" - }, - "NoncurrentVersionTransition": { - "additionalProperties": false, - "description": "Container for the transition rule that describes when noncurrent objects transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's lifetime.", - "properties": { - "NewerNoncurrentVersions": { - "description": "Specified the number of newer noncurrent and current versions that must exists before performing the associated action", - "type": "integer" - }, - "StorageClass": { - "description": "The class of storage used to store the object.", - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "Glacier", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "STANDARD_IA" - ], - "type": "string" - }, - "TransitionInDays": { - "description": "Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action.", - "type": "integer" - } - }, - "required": [ - "StorageClass", - "TransitionInDays" - ], - "type": "object" - }, - "NotificationConfiguration": { - "additionalProperties": false, - "description": "Describes the notification configuration for an Amazon S3 bucket.", - "properties": { - "EventBridgeConfiguration": { - "$ref": "#/definitions/EventBridgeConfiguration" - }, - "LambdaConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/LambdaConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "QueueConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/QueueConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "TopicConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TopicConfiguration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "NotificationFilter": { - "additionalProperties": false, - "description": "Specifies object key name filtering rules.", - "properties": { - "S3Key": { - "$ref": "#/definitions/S3KeyFilter" - } - }, - "required": [ - "S3Key" - ], - "type": "object" - }, - "ObjectLockConfiguration": { - "additionalProperties": false, - "properties": { - "ObjectLockEnabled": { - "const": "Enabled", - "type": "string" - }, - "Rule": { - "$ref": "#/definitions/ObjectLockRule" - } - }, - "type": "object" - }, - "ObjectLockRule": { - "additionalProperties": false, - "description": "The Object Lock rule in place for the specified object.", - "properties": { - "DefaultRetention": { - "$ref": "#/definitions/DefaultRetention" - } - }, - "type": "object" - }, - "OwnershipControls": { - "additionalProperties": false, - "properties": { - "Rules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/OwnershipControlsRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "OwnershipControlsRule": { - "additionalProperties": false, - "properties": { - "ObjectOwnership": { - "description": "Specifies an object ownership rule.", - "enum": [ - "ObjectWriter", - "BucketOwnerPreferred", - "BucketOwnerEnforced" - ], - "type": "string" - } - }, - "type": "object" - }, - "PublicAccessBlockConfiguration": { - "additionalProperties": false, - "description": "Configuration that defines how Amazon S3 handles public access.", - "properties": { - "BlockPublicAcls": { - "description": "Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this bucket. Setting this element to TRUE causes the following behavior:\n- PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public.\n - PUT Object calls fail if the request includes a public ACL.\nEnabling this setting doesn't affect existing policies or ACLs.", - "type": "boolean" - }, - "BlockPublicPolicy": { - "description": "Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to TRUE causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.\nEnabling this setting doesn't affect existing bucket policies.", - "type": "boolean" - }, - "IgnorePublicAcls": { - "description": "Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this element to TRUE causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket.\nEnabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.", - "type": "boolean" - }, - "RestrictPublicBuckets": { - "description": "Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to TRUE restricts access to this bucket to only AWS services and authorized users within this account if the bucket has a public policy.\nEnabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked.", - "type": "boolean" - } - }, - "type": "object" - }, - "QueueConfiguration": { - "additionalProperties": false, - "description": "The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages.", - "properties": { - "Event": { - "description": "The Amazon S3 bucket event about which you want to publish messages to Amazon SQS.", - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter", - "description": "The filtering rules that determine which objects trigger notifications." - }, - "Queue": { - "description": "The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type.", - "type": "string" - } - }, - "required": [ - "Event", - "Queue" - ], - "type": "object" - }, - "RedirectAllRequestsTo": { - "additionalProperties": false, - "dependencies": { - "RedirectAllRequestsTo": { - "properties": { - "ErrorDocument": false, - "IndexDocument": false, - "RoutingRules": false - } - } - }, - "description": "Specifies the redirect behavior of all requests to a website endpoint of an Amazon S3 bucket.", - "properties": { - "HostName": { - "description": "Name of the host where requests are redirected.", - "type": "string" - }, - "Protocol": { - "description": "Protocol to use when redirecting requests. The default is the protocol that is used in the original request.", - "enum": [ - "http", - "https" - ], - "type": "string" - } - }, - "required": [ - "HostName" - ], - "type": "object" - }, - "RedirectRule": { - "additionalProperties": false, - "description": "Specifies how requests are redirected. In the event of an error, you can specify a different error code to return.", - "properties": { - "HostName": { - "description": "The host name to use in the redirect request.", - "type": "string" - }, - "HttpRedirectCode": { - "description": "The HTTP redirect code to use on the response. Not required if one of the siblings is present.", - "type": "string" - }, - "Protocol": { - "description": "Protocol to use when redirecting requests. The default is the protocol that is used in the original request.", - "enum": [ - "http", - "https" - ], - "type": "string" - }, - "ReplaceKeyPrefixWith": { - "description": "The object key prefix to use in the redirect request.", - "type": "string" - }, - "ReplaceKeyWith": { - "description": "The specific object key to use in the redirect request.d", - "type": "string" - } - }, - "type": "object" - }, - "ReplicaModifications": { - "additionalProperties": false, - "properties": { - "Status": { - "description": "Specifies whether Amazon S3 replicates modifications on replicas.", - "enum": [ - "Enabled", - "Disabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "ReplicationConfiguration": { - "additionalProperties": false, - "description": "A container for replication rules. You can add up to 1,000 rules. The maximum size of a replication configuration is 2 MB.", - "properties": { - "Role": { - "awsType": "IamRoleArn", - "description": "The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that Amazon S3 assumes when replicating objects.", - "type": "string" - }, - "Rules": { - "description": "A container for one or more replication rules.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ReplicationRule", - "maxLength": 1000, - "minLength": 1 - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Role", - "Rules" - ], - "type": "object" - }, - "ReplicationDestination": { - "additionalProperties": false, - "description": "Specifies which Amazon S3 bucket to store replicated objects in and their storage class.", - "properties": { - "AccessControlTranslation": { - "$ref": "#/definitions/AccessControlTranslation" - }, - "Account": { - "type": "string" - }, - "Bucket": { - "type": "string" - }, - "EncryptionConfiguration": { - "$ref": "#/definitions/EncryptionConfiguration" - }, - "Metrics": { - "$ref": "#/definitions/Metrics" - }, - "ReplicationTime": { - "$ref": "#/definitions/ReplicationTime" - }, - "StorageClass": { - "description": "The storage class to use when replicating objects, such as S3 Standard or reduced redundancy.", - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "REDUCED_REDUNDANCY", - "STANDARD", - "STANDARD_IA" - ], - "type": "string" - } - }, - "required": [ - "Bucket" - ], - "type": "object" - }, - "ReplicationRule": { - "additionalProperties": false, - "description": "Specifies which Amazon S3 objects to replicate and where to store the replicas.", - "properties": { - "DeleteMarkerReplication": { - "$ref": "#/definitions/DeleteMarkerReplication" - }, - "Destination": { - "$ref": "#/definitions/ReplicationDestination" - }, - "Filter": { - "$ref": "#/definitions/ReplicationRuleFilter" - }, - "Id": { - "description": "A unique identifier for the rule.", - "maxLength": 255, - "type": "string" - }, - "Prefix": { - "description": "An object key name prefix that identifies the object or objects to which the rule applies.", - "maxLength": 1024, - "type": "string" - }, - "Priority": { - "type": "integer" - }, - "SourceSelectionCriteria": { - "$ref": "#/definitions/SourceSelectionCriteria" - }, - "Status": { - "description": "Specifies whether the rule is enabled.", - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Destination", - "Status" - ], - "type": "object" - }, - "ReplicationRuleAndOperator": { - "additionalProperties": false, - "properties": { - "Prefix": { - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ReplicationRuleFilter": { - "additionalProperties": false, - "properties": { - "And": { - "$ref": "#/definitions/ReplicationRuleAndOperator" - }, - "Prefix": { - "type": "string" - }, - "TagFilter": { - "$ref": "#/definitions/TagFilter" - } - }, - "type": "object" - }, - "ReplicationTime": { - "additionalProperties": false, - "properties": { - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - }, - "Time": { - "$ref": "#/definitions/ReplicationTimeValue" - } - }, - "required": [ - "Status", - "Time" - ], - "type": "object" - }, - "ReplicationTimeValue": { - "additionalProperties": false, - "properties": { - "Minutes": { - "type": "integer" - } - }, - "required": [ - "Minutes" - ], - "type": "object" - }, - "RoutingRule": { - "additionalProperties": false, - "description": "Specifies the redirect behavior and when a redirect is applied.", - "properties": { - "RedirectRule": { - "$ref": "#/definitions/RedirectRule", - "description": "Container for redirect information. You can redirect requests to another host, to another page, or with another protocol. In the event of an error, you can specify a different error code to return." - }, - "RoutingRuleCondition": { - "$ref": "#/definitions/RoutingRuleCondition" - } - }, - "required": [ - "RedirectRule" - ], - "type": "object" - }, - "RoutingRuleCondition": { - "additionalProperties": false, - "anyOf": [ - { - "required": [ - "HttpErrorCodeReturnedEquals" - ] - }, - { - "required": [ - "KeyPrefixEquals" - ] - } - ], - "description": "A container for describing a condition that must be met for the specified redirect to apply.You must specify at least one of HttpErrorCodeReturnedEquals and KeyPrefixEquals", - "properties": { - "HttpErrorCodeReturnedEquals": { - "description": "The HTTP error code when the redirect is applied. ", - "type": "string" - }, - "KeyPrefixEquals": { - "description": "The object key name prefix when the redirect is applied.", - "type": "string" - } - }, - "type": "object" - }, - "Rule": { - "additionalProperties": false, - "description": "You must specify at least one of the following properties: AbortIncompleteMultipartUpload, ExpirationDate, ExpirationInDays, NoncurrentVersionExpirationInDays, NoncurrentVersionTransition, NoncurrentVersionTransitions, Transition, or Transitions.", - "properties": { - "AbortIncompleteMultipartUpload": { - "$ref": "#/definitions/AbortIncompleteMultipartUpload" - }, - "ExpirationDate": { - "$ref": "#/definitions/iso8601UTC" - }, - "ExpirationInDays": { - "type": "integer" - }, - "ExpiredObjectDeleteMarker": { - "type": "boolean" - }, - "Id": { - "maxLength": 255, - "type": "string" - }, - "NoncurrentVersionExpiration": { - "$ref": "#/definitions/NoncurrentVersionExpiration" - }, - "NoncurrentVersionExpirationInDays": { - "type": "integer" - }, - "NoncurrentVersionTransition": { - "$ref": "#/definitions/NoncurrentVersionTransition" - }, - "NoncurrentVersionTransitions": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/NoncurrentVersionTransition" - }, - "type": "array", - "uniqueItems": true - }, - "ObjectSizeGreaterThan": { - "maxLength": 20, - "pattern": "[0-9]+", - "type": "string" - }, - "ObjectSizeLessThan": { - "maxLength": 20, - "pattern": "[0-9]+", - "type": "string" - }, - "Prefix": { - "type": "string" - }, - "Status": { - "enum": [ - "Enabled", - "Disabled" - ], - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Transition": { - "$ref": "#/definitions/Transition" - }, - "Transitions": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Transition" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "S3KeyFilter": { - "additionalProperties": false, - "description": "A container for object key name prefix and suffix filtering rules.", - "properties": { - "Rules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/FilterRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "ServerSideEncryptionByDefault": { - "additionalProperties": false, - "description": "Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied.", - "properties": { - "KMSMasterKeyID": { - "description": "\"KMSMasterKeyID\" can only be used when you set the value of SSEAlgorithm as aws:kms or aws:kms:dsse.", - "type": "string" - }, - "SSEAlgorithm": { - "enum": [ - "aws:kms", - "AES256", - "aws:kms:dsse" - ], - "type": "string" - } - }, - "required": [ - "SSEAlgorithm" - ], - "type": "object" - }, - "ServerSideEncryptionRule": { - "additionalProperties": false, - "description": "Specifies the default server-side encryption configuration.", - "properties": { - "BucketKeyEnabled": { - "description": "Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the BucketKeyEnabled element to true causes Amazon S3 to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled.", - "type": "boolean" - }, - "ServerSideEncryptionByDefault": { - "$ref": "#/definitions/ServerSideEncryptionByDefault" - } - }, - "type": "object" - }, - "SourceSelectionCriteria": { - "additionalProperties": false, - "description": "A container that describes additional filters for identifying the source objects that you want to replicate.", - "properties": { - "ReplicaModifications": { - "$ref": "#/definitions/ReplicaModifications", - "description": "A filter that you can specify for selection for modifications on replicas." - }, - "SseKmsEncryptedObjects": { - "$ref": "#/definitions/SseKmsEncryptedObjects", - "description": "A container for filter information for the selection of Amazon S3 objects encrypted with AWS KMS." - } - }, - "type": "object" - }, - "SseKmsEncryptedObjects": { - "additionalProperties": false, - "description": "A container for filter information for the selection of S3 objects encrypted with AWS KMS.", - "properties": { - "Status": { - "description": "Specifies whether Amazon S3 replicates objects created with server-side encryption using a customer master key (CMK) stored in AWS Key Management Service.", - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "StorageClassAnalysis": { - "additionalProperties": false, - "description": "Specifies data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes for an Amazon S3 bucket.", - "properties": { - "DataExport": { - "$ref": "#/definitions/DataExport" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "description": "Tags to use to identify a subset of objects for an Amazon S3 bucket.", - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "Tiering": { - "additionalProperties": false, - "properties": { - "AccessTier": { - "description": "S3 Intelligent-Tiering access tier. See Storage class for automatically optimizing frequently and infrequently accessed objects for a list of access tiers in the S3 Intelligent-Tiering storage class.", - "enum": [ - "ARCHIVE_ACCESS", - "DEEP_ARCHIVE_ACCESS" - ], - "type": "string" - }, - "Days": { - "description": "The number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier. The minimum number of days specified for Archive Access tier must be at least 90 days and Deep Archive Access tier must be at least 180 days. The maximum can be up to 2 years (730 days).", - "type": "integer" - } - }, - "required": [ - "AccessTier", - "Days" - ], - "type": "object" - }, - "TopicConfiguration": { - "additionalProperties": false, - "description": "The topic to which notifications are sent and the events for which notifications are generated.", - "properties": { - "Event": { - "description": "The Amazon S3 bucket event about which to send notifications.", - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter", - "description": "The filtering rules that determine for which objects to send notifications." - }, - "Topic": { - "description": "The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 publishes a message when it detects events of the specified type.", - "type": "string" - } - }, - "required": [ - "Event", - "Topic" - ], - "type": "object" - }, - "Transition": { - "additionalProperties": false, - "description": "You must specify at least one of \"TransitionDate\" and \"TransitionInDays\"", - "properties": { - "StorageClass": { - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "Glacier", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "STANDARD_IA" - ], - "type": "string" - }, - "TransitionDate": { - "$ref": "#/definitions/iso8601UTC" - }, - "TransitionInDays": { - "type": "integer" - } - }, - "required": [ - "StorageClass" - ], - "type": "object" - }, - "VersioningConfiguration": { - "additionalProperties": false, - "description": "Describes the versioning state of an Amazon S3 bucket.", - "properties": { - "Status": { - "default": "Suspended", - "description": "The versioning state of the bucket.", - "enum": [ - "Enabled", - "Suspended" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "WebsiteConfiguration": { - "additionalProperties": false, - "description": "Specifies website configuration parameters for an Amazon S3 bucket.", - "properties": { - "ErrorDocument": { - "description": "The name of the error document for the website.", - "type": "string" - }, - "IndexDocument": { - "description": "The name of the index document for the website.", - "type": "string" - }, - "RedirectAllRequestsTo": { - "$ref": "#/definitions/RedirectAllRequestsTo" - }, - "RoutingRules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/RoutingRule" - }, - "type": "array" - } - }, - "type": "object" - }, - "iso8601UTC": { - "description": "The date value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ssZ)", - "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", - "type": "string" - } - }, - "description": "Resource Type definition for AWS::S3::Bucket", - "handlers": { - "create": { - "permissions": [ - "s3:CreateBucket", - "s3:PutBucketTagging", - "s3:PutAnalyticsConfiguration", - "s3:PutEncryptionConfiguration", - "s3:PutBucketCORS", - "s3:PutInventoryConfiguration", - "s3:PutLifecycleConfiguration", - "s3:PutMetricsConfiguration", - "s3:PutBucketNotification", - "s3:PutBucketReplication", - "s3:PutBucketWebsite", - "s3:PutAccelerateConfiguration", - "s3:PutBucketPublicAccessBlock", - "s3:PutReplicationConfiguration", - "s3:PutObjectAcl", - "s3:PutBucketObjectLockConfiguration", - "s3:GetBucketAcl", - "s3:ListBucket", - "iam:PassRole", - "s3:DeleteObject", - "s3:PutBucketLogging", - "s3:PutBucketVersioning", - "s3:PutObjectLockConfiguration", - "s3:PutBucketOwnershipControls", - "s3:PutIntelligentTieringConfiguration" - ] - }, - "delete": { - "permissions": [ - "s3:DeleteBucket", - "s3:ListBucket" - ] - }, - "list": { - "permissions": [ - "s3:ListAllMyBuckets" - ] - }, - "read": { - "permissions": [ - "s3:GetAccelerateConfiguration", - "s3:GetLifecycleConfiguration", - "s3:GetBucketPublicAccessBlock", - "s3:GetAnalyticsConfiguration", - "s3:GetBucketCORS", - "s3:GetEncryptionConfiguration", - "s3:GetInventoryConfiguration", - "s3:GetBucketLogging", - "s3:GetMetricsConfiguration", - "s3:GetBucketNotification", - "s3:GetBucketVersioning", - "s3:GetReplicationConfiguration", - "S3:GetBucketWebsite", - "s3:GetBucketPublicAccessBlock", - "s3:GetBucketObjectLockConfiguration", - "s3:GetBucketTagging", - "s3:GetBucketOwnershipControls", - "s3:GetIntelligentTieringConfiguration", - "s3:ListBucket" - ] - }, - "update": { - "permissions": [ - "s3:PutBucketAcl", - "s3:PutBucketTagging", - "s3:PutAnalyticsConfiguration", - "s3:PutEncryptionConfiguration", - "s3:PutBucketCORS", - "s3:PutInventoryConfiguration", - "s3:PutLifecycleConfiguration", - "s3:PutMetricsConfiguration", - "s3:PutBucketNotification", - "s3:PutBucketReplication", - "s3:PutBucketWebsite", - "s3:PutAccelerateConfiguration", - "s3:PutBucketPublicAccessBlock", - "s3:PutReplicationConfiguration", - "s3:PutBucketOwnershipControls", - "s3:PutIntelligentTieringConfiguration", - "s3:DeleteBucketWebsite", - "s3:PutBucketLogging", - "s3:PutBucketVersioning", - "s3:PutObjectLockConfiguration", - "s3:PutBucketObjectLockConfiguration", - "s3:DeleteBucketAnalyticsConfiguration", - "s3:DeleteBucketCors", - "s3:DeleteBucketMetricsConfiguration", - "s3:DeleteBucketEncryption", - "s3:DeleteBucketLifecycle", - "s3:DeleteBucketReplication", - "iam:PassRole", - "s3:ListBucket" - ] - } - }, - "primaryIdentifier": [ - "/properties/BucketName" - ], - "properties": { - "AccelerateConfiguration": { - "$ref": "#/definitions/AccelerateConfiguration", - "description": "Configuration for the transfer acceleration state." - }, - "AccessControl": { - "description": "A canned access control list (ACL) that grants predefined permissions to the bucket.", - "enum": [ - "AuthenticatedRead", - "AwsExecRead", - "BucketOwnerFullControl", - "BucketOwnerRead", - "LogDeliveryWrite", - "Private", - "PublicRead", - "PublicReadWrite" - ], - "type": "string" - }, - "AnalyticsConfigurations": { - "description": "The configuration and any analyses for the analytics filter of an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/AnalyticsConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "Arn": { - "$ref": "#/definitions/Arn", - "description": "The Amazon Resource Name (ARN) of the specified bucket.", - "examples": [ - "arn:aws:s3:::mybucket" - ] - }, - "BucketEncryption": { - "$ref": "#/definitions/BucketEncryption" - }, - "BucketName": { - "description": "A name for the bucket. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][a-z0-9.-]*[a-z0-9]$", - "type": "string" - }, - "CorsConfiguration": { - "$ref": "#/definitions/CorsConfiguration", - "description": "Rules that define cross-origin resource sharing of objects in this bucket." - }, - "DomainName": { - "description": "The IPv4 DNS name of the specified bucket.", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.amazonaws.com" - ], - "type": "string" - }, - "DualStackDomainName": { - "description": "The IPv6 DNS name of the specified bucket. For more information about dual-stack endpoints, see [Using Amazon S3 Dual-Stack Endpoints](https://docs.aws.amazon.com/AmazonS3/latest/dev/dual-stack-endpoints.html).", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com" - ], - "type": "string" - }, - "IntelligentTieringConfigurations": { - "description": "Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/IntelligentTieringConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "InventoryConfigurations": { - "description": "The inventory configuration for an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/InventoryConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "LifecycleConfiguration": { - "$ref": "#/definitions/LifecycleConfiguration", - "description": "Rules that define how Amazon S3 manages objects during their lifetime." - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration", - "description": "Settings that define where logs are stored." - }, - "MetricsConfigurations": { - "description": "Settings that define a metrics configuration for the CloudWatch request metrics from the bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/MetricsConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "NotificationConfiguration": { - "$ref": "#/definitions/NotificationConfiguration", - "description": "Configuration that defines how Amazon S3 handles bucket notifications." - }, - "ObjectLockConfiguration": { - "$ref": "#/definitions/ObjectLockConfiguration", - "description": "Places an Object Lock configuration on the specified bucket." - }, - "ObjectLockEnabled": { - "description": "Indicates whether this bucket has an Object Lock configuration enabled.", - "type": "boolean" - }, - "OwnershipControls": { - "$ref": "#/definitions/OwnershipControls", - "description": "Specifies the container element for object ownership rules." - }, - "PublicAccessBlockConfiguration": { - "$ref": "#/definitions/PublicAccessBlockConfiguration" - }, - "RegionalDomainName": { - "description": "Returns the regional domain name of the specified bucket.", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.us-east-2.amazonaws.com" - ], - "type": "string" - }, - "ReplicationConfiguration": { - "$ref": "#/definitions/ReplicationConfiguration", - "description": "Configuration for replicating objects in an S3 bucket." - }, - "Tags": { - "description": "An arbitrary set of tags (key-value pairs) for this S3 bucket.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VersioningConfiguration": { - "$ref": "#/definitions/VersioningConfiguration" - }, - "WebsiteConfiguration": { - "$ref": "#/definitions/WebsiteConfiguration" - }, - "WebsiteURL": { - "description": "The Amazon S3 website endpoint for the specified bucket.", - "examples": [ - "Example (IPv4): http://mystack-mybucket-kdwwxmddtr2g.s3-website-us-east-2.amazonaws.com/", - "Example (IPv6): http://mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com/" - ], - "format": "uri", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/DomainName", - "/properties/DualStackDomainName", - "/properties/RegionalDomainName", - "/properties/WebsiteURL" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::S3::Bucket", - "writeOnlyProperties": [ - "/properties/AccessControl", - "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionExpirationInDays", - "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionTransition", - "/properties/LifecycleConfiguration/Rules/*/Transition", - "/properties/ReplicationConfiguration/Rules/*/Prefix", - "/properties/LifecycleConfiguration/Rules/*/ExpiredObjectDeleteMarker" - ] -} 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 ea450a8caa..8735bf0b8a 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py @@ -7,6 +7,7 @@ "AWS::Pinpoint::App", "AWS::Connect::UserHierarchyGroup", "AWS::ApiGatewayV2::ApiMapping", + "AWS::CE::AnomalySubscription", "AWS::Shield::DRTAccess", "AWS::SSO::Assignment", "AWS::Glue::Partition", @@ -275,6 +276,7 @@ "AWS::IoT::ThingType", "AWS::GuardDuty::Member", "AWS::CloudFormation::CustomResource", + "AWS::FIS::TargetAccountConfiguration", "AWS::RefactorSpaces::Route", "AWS::KinesisAnalytics::ApplicationOutput", "AWS::WAFv2::RuleGroup", @@ -549,6 +551,7 @@ "AWS::ServiceCatalog::AcceptedPortfolioShare", "AWS::Route53Resolver::FirewallRuleGroupAssociation", "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", "AWS::EC2::Subnet", "AWS::CloudTrail::ResourcePolicy", "AWS::IoTTwinMaker::ComponentType", @@ -781,6 +784,7 @@ "AWS::MediaConnect::FlowSource", "AWS::Greengrass::SubscriptionDefinitionVersion", "AWS::AppConfig::Extension", + "AWS::OSIS::Pipeline", "AWS::ElasticLoadBalancingV2::ListenerRule", "AWS::ElasticLoadBalancingV2::TrustStore", "AWS::Glue::Registry", @@ -931,6 +935,7 @@ "AWS::SageMaker::MonitoringSchedule", "AWS::IAM::OIDCProvider", "AWS::LakeFormation::Tag", + "AWS::CE::AnomalyMonitor", "AWS::ServiceCatalogAppRegistry::ResourceAssociation", "AWS::EC2::VPNGateway", "AWS::CloudFormation::Stack", @@ -1029,6 +1034,7 @@ "aws-pinpoint-app.json", "aws-connect-userhierarchygroup.json", "aws-apigatewayv2-apimapping.json", + "aws-ce-anomalysubscription.json", "aws-shield-drtaccess.json", "aws-sso-assignment.json", "aws-glue-partition.json", @@ -1042,6 +1048,7 @@ "aws-servicecatalog-portfolioprincipalassociation.json", "aws-ram-resourceshare.json", "aws-memorydb-cluster.json", + "aws-dms-replicationconfig.json", "aws-dynamodb-table.json", "aws-amazonmq-configurationassociation.json", "aws-redshiftserverless-namespace.json", @@ -1054,6 +1061,7 @@ "aws-mediaconnect-bridge.json", "aws-config-configurationrecorder.json", "aws-ec2-networkperformancemetricsubscription.json", + "aws-medialive-channel.json", "aws-greengrass-devicedefinition.json", "aws-cloudfront-continuousdeploymentpolicy.json", "aws-quicksight-analysis.json", @@ -1180,7 +1188,6 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", - "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -1202,8 +1209,8 @@ "aws-appconfig-deploymentstrategy.json", "aws-glue-devendpoint.json", "aws-sagemaker-modelpackage.json", + "aws-eventschemas-discoverer.json", "aws-networkmanager-connectpeer.json", - "aws-elasticache-usergroup.json", "aws-iot-thinggroup.json", "aws-imagebuilder-imagerecipe.json", "aws-iot-softwarepackage.json", @@ -1252,6 +1259,7 @@ "aws-greengrass-group.json", "aws-ssm-document.json", "aws-iam-role.json", + "aws-workspacesthinclient-environment.json", "aws-dms-endpoint.json", "aws-iotsitewise-project.json", "aws-medialive-multiplexprogram.json", @@ -1275,7 +1283,6 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", - "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-wafregional-xssmatchset.json", "aws-rds-dbproxytargetgroup.json", @@ -1284,6 +1291,7 @@ "aws-iot-thingtype.json", "aws-guardduty-member.json", "aws-cloudformation-customresource.json", + "aws-fis-targetaccountconfiguration.json", "aws-refactorspaces-route.json", "aws-kinesisanalytics-applicationoutput.json", "aws-wafv2-rulegroup.json", @@ -1293,7 +1301,6 @@ "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", - "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-location-trackerconsumer.json", "aws-sagemaker-inferenceexperiment.json", @@ -1497,11 +1504,11 @@ "aws-ec2-networkinterfaceattachment.json", "aws-cognito-userpooluser.json", "aws-connect-contactflowmodule.json", + "aws-codedeploy-deploymentconfig.json", "aws-networkmanager-globalnetwork.json", "aws-connect-tasktemplate.json", "aws-pinpoint-apnssandboxchannel.json", "aws-stepfunctions-statemachineversion.json", - "aws-servicecatalogappregistry-application.json", "aws-networkmanager-site.json", "aws-glue-database.json", "aws-neptune-dbcluster.json", @@ -1545,6 +1552,7 @@ "aws-servicecatalog-acceptedportfolioshare.json", "aws-route53resolver-firewallrulegroupassociation.json", "aws-route53resolver-resolverqueryloggingconfig.json", + "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-subnet.json", "aws-cloudtrail-resourcepolicy.json", "aws-iottwinmaker-componenttype.json", @@ -1603,7 +1611,6 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", - "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-rds-dbcluster.json", @@ -1649,7 +1656,7 @@ "aws-ssmincidents-responseplan.json", "aws-lambda-layerversionpermission.json", "aws-secretsmanager-secret.json", - "aws-elasticache-user.json", + "aws-route53resolver-resolverconfig.json", "aws-sagemaker-image.json", "aws-logs-subscriptionfilter.json", "aws-codedeploy-application.json", @@ -1722,7 +1729,6 @@ "aws-lightsail-loadbalancertlscertificate.json", "aws-ec2-clientvpntargetnetworkassociation.json", "aws-mediapackagev2-originendpoint.json", - "aws-appsync-graphqlapi.json", "aws-gamelift-matchmakingruleset.json", "aws-ec2-egressonlyinternetgateway.json", "aws-config-conformancepack.json", @@ -1767,6 +1773,7 @@ "aws-mediaconnect-flowsource.json", "aws-greengrass-subscriptiondefinitionversion.json", "aws-appconfig-extension.json", + "aws-osis-pipeline.json", "aws-elasticloadbalancingv2-listenerrule.json", "aws-elasticloadbalancingv2-truststore.json", "aws-glue-registry.json", @@ -1874,6 +1881,7 @@ "aws-appsync-datasource.json", "aws-sqs-queue.json", "aws-ec2-securitygroupingress.json", + "aws-guardduty-detector.json", "aws-sagemaker-modelqualityjobdefinition.json", "aws-iot-provisioningtemplate.json", "aws-personalize-schema.json", @@ -1913,6 +1921,7 @@ "aws-sagemaker-monitoringschedule.json", "aws-iam-oidcprovider.json", "aws-lakeformation-tag.json", + "aws-ce-anomalymonitor.json", "aws-servicecatalogappregistry-resourceassociation.json", "aws-ec2-vpngateway.json", "aws-cloudformation-stack.json", @@ -1996,7 +2005,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-redshift-eventsubscription.json", "aws-iotfleethub-application.json", - "aws-connect-user.json", "aws-ssmcontacts-contactchannel.json", "aws-memorydb-acl.json", "aws-cloudformation-waitconditionhandle.json", diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-appsync-graphqlapi.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-appsync-graphqlapi.json new file mode 100644 index 0000000000..077c3fd5af --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-appsync-graphqlapi.json @@ -0,0 +1,222 @@ +{ + "additionalProperties": false, + "definitions": { + "AdditionalAuthenticationProvider": { + "additionalProperties": false, + "properties": { + "AuthenticationType": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "UserPoolConfig": { + "$ref": "#/definitions/CognitoUserPoolConfig" + } + }, + "required": [ + "AuthenticationType" + ], + "type": "object" + }, + "CognitoUserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "LambdaAuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsRoleArn": { + "type": "string" + }, + "ExcludeVerboseContent": { + "type": "boolean" + }, + "FieldLogLevel": { + "type": "string" + } + }, + "type": "object" + }, + "OpenIDConnectConfig": { + "additionalProperties": false, + "properties": { + "AuthTTL": { + "type": "number" + }, + "ClientId": { + "type": "string" + }, + "IatTTL": { + "type": "number" + }, + "Issuer": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "UserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "DefaultAction": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AppSync::GraphQLApi", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalAuthenticationProviders": { + "items": { + "$ref": "#/definitions/AdditionalAuthenticationProvider" + }, + "type": "array", + "uniqueItems": false + }, + "ApiId": { + "type": "string" + }, + "ApiType": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "AuthenticationType": { + "enum": [ + "API_KEY", + "AWS_IAM", + "AMAZON_COGNITO_USER_POOLS", + "OPENID_CONNECT", + "AWS_LAMBDA" + ], + "type": "string" + }, + "GraphQLDns": { + "type": "string" + }, + "GraphQLEndpointArn": { + "type": "string" + }, + "GraphQLUrl": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "LogConfig": { + "$ref": "#/definitions/LogConfig" + }, + "MergedApiExecutionRoleArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "OwnerContact": { + "type": "string" + }, + "RealtimeDns": { + "type": "string" + }, + "RealtimeUrl": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UserPoolConfig": { + "$ref": "#/definitions/UserPoolConfig" + }, + "Visibility": { + "type": "string" + }, + "XrayEnabled": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/ApiId", + "/properties/GraphQLEndpointArn", + "/properties/Id", + "/properties/GraphQLDns", + "/properties/GraphQLUrl", + "/properties/RealtimeDns", + "/properties/RealtimeUrl", + "/properties/Arn" + ], + "required": [ + "Name", + "AuthenticationType" + ], + "typeName": "AWS::AppSync::GraphQLApi" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-codedeploy-deploymentconfig.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-codedeploy-deploymentconfig.json deleted file mode 100644 index a37713685a..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-codedeploy-deploymentconfig.json +++ /dev/null @@ -1,173 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentConfigName", - "/properties/MinimumHealthyHosts", - "/properties/ComputePlatform", - "/properties/ZonalConfig", - "/properties/TrafficRoutingConfig" - ], - "definitions": { - "MinimumHealthyHosts": { - "additionalProperties": false, - "properties": { - "Type": { - "enum": [ - "HOST_COUNT", - "FLEET_PERCENT" - ], - "type": "string" - }, - "Value": { - "type": "integer" - } - }, - "required": [ - "Type", - "Value" - ], - "type": "object" - }, - "MinimumHealthyHostsPerZone": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "integer" - } - }, - "required": [ - "Type", - "Value" - ], - "type": "object" - }, - "TimeBasedCanary": { - "additionalProperties": false, - "properties": { - "CanaryInterval": { - "type": "integer" - }, - "CanaryPercentage": { - "type": "integer" - } - }, - "required": [ - "CanaryPercentage", - "CanaryInterval" - ], - "type": "object" - }, - "TimeBasedLinear": { - "additionalProperties": false, - "properties": { - "LinearInterval": { - "type": "integer" - }, - "LinearPercentage": { - "type": "integer" - } - }, - "required": [ - "LinearInterval", - "LinearPercentage" - ], - "type": "object" - }, - "TrafficRoutingConfig": { - "additionalProperties": false, - "properties": { - "TimeBasedCanary": { - "$ref": "#/definitions/TimeBasedCanary" - }, - "TimeBasedLinear": { - "$ref": "#/definitions/TimeBasedLinear" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "ZonalConfig": { - "additionalProperties": false, - "properties": { - "FirstZoneMonitorDurationInSeconds": { - "format": "int64", - "type": "integer" - }, - "MinimumHealthyHostsPerZone": { - "$ref": "#/definitions/MinimumHealthyHostsPerZone" - }, - "MonitorDurationInSeconds": { - "format": "int64", - "type": "integer" - } - }, - "required": [], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentConfig", - "handlers": { - "create": { - "permissions": [ - "codedeploy:CreateDeploymentConfig" - ] - }, - "delete": { - "permissions": [ - "codedeploy:GetDeploymentConfig", - "codedeploy:DeleteDeploymentConfig" - ] - }, - "list": { - "permissions": [ - "codedeploy:ListDeploymentConfigs" - ] - }, - "read": { - "permissions": [ - "codedeploy:GetDeploymentConfig" - ] - } - }, - "primaryIdentifier": [ - "/properties/DeploymentConfigName" - ], - "properties": { - "ComputePlatform": { - "description": "The destination platform type for the deployment (Lambda, Server, or ECS).", - "type": "string" - }, - "DeploymentConfigName": { - "description": "A name for the deployment configuration. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the deployment configuration name. For more information, see Name Type.", - "type": "string" - }, - "MinimumHealthyHosts": { - "$ref": "#/definitions/MinimumHealthyHosts", - "description": "The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value." - }, - "TrafficRoutingConfig": { - "$ref": "#/definitions/TrafficRoutingConfig", - "description": "The configuration that specifies how the deployment traffic is routed." - }, - "ZonalConfig": { - "$ref": "#/definitions/ZonalConfig", - "description": "The zonal deployment config that specifies how the zonal deployment behaves" - } - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-codedeploy", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::CodeDeploy::DeploymentConfig" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-codedeploy-deploymentgroup.json new file mode 100644 index 0000000000..208990a115 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-codedeploy-deploymentgroup.json @@ -0,0 +1,523 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentGroupName", + "/properties/ApplicationName" + ], + "definitions": { + "Alarm": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AlarmConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/Alarm" + }, + "type": "array", + "uniqueItems": true + }, + "Enabled": { + "type": "boolean" + }, + "IgnorePollAlarmFailure": { + "type": "boolean" + } + }, + "type": "object" + }, + "AutoRollbackConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Events": { + "items": { + "enum": [ + "DEPLOYMENT_FAILURE", + "DEPLOYMENT_STOP_ON_ALARM", + "DEPLOYMENT_STOP_ON_REQUEST" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "BlueGreenDeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "DeploymentReadyOption": { + "$ref": "#/definitions/DeploymentReadyOption" + }, + "GreenFleetProvisioningOption": { + "$ref": "#/definitions/GreenFleetProvisioningOption" + }, + "TerminateBlueInstancesOnDeploymentSuccess": { + "$ref": "#/definitions/BlueInstanceTerminationOption" + } + }, + "type": "object" + }, + "BlueInstanceTerminationOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "TerminationWaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "Deployment": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "IgnoreApplicationStopFailures": { + "type": "boolean" + }, + "Revision": { + "$ref": "#/definitions/RevisionLocation" + } + }, + "required": [ + "Revision" + ], + "type": "object" + }, + "DeploymentReadyOption": { + "additionalProperties": false, + "properties": { + "ActionOnTimeout": { + "type": "string" + }, + "WaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentStyle": { + "additionalProperties": false, + "properties": { + "DeploymentOption": { + "enum": [ + "WITH_TRAFFIC_CONTROL", + "WITHOUT_TRAFFIC_CONTROL" + ], + "type": "string" + }, + "DeploymentType": { + "enum": [ + "IN_PLACE", + "BLUE_GREEN" + ], + "type": "string" + } + }, + "type": "object" + }, + "EC2TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "EC2TagSet": { + "additionalProperties": false, + "properties": { + "Ec2TagSetList": { + "items": { + "$ref": "#/definitions/EC2TagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EC2TagSetListObject": { + "additionalProperties": false, + "properties": { + "Ec2TagGroup": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ECSService": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + } + }, + "required": [ + "ServiceName", + "ClusterName" + ], + "type": "object" + }, + "ELBInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "GitHubLocation": { + "additionalProperties": false, + "properties": { + "CommitId": { + "type": "string" + }, + "Repository": { + "type": "string" + } + }, + "required": [ + "Repository", + "CommitId" + ], + "type": "object" + }, + "GreenFleetProvisioningOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "type": "object" + }, + "LoadBalancerInfo": { + "additionalProperties": false, + "properties": { + "ElbInfoList": { + "items": { + "$ref": "#/definitions/ELBInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupPairInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupPairInfo" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSet": { + "additionalProperties": false, + "properties": { + "OnPremisesTagSetList": { + "items": { + "$ref": "#/definitions/OnPremisesTagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSetListObject": { + "additionalProperties": false, + "properties": { + "OnPremisesTagGroup": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "RevisionLocation": { + "additionalProperties": false, + "properties": { + "GitHubLocation": { + "$ref": "#/definitions/GitHubLocation" + }, + "RevisionType": { + "type": "string" + }, + "S3Location": { + "$ref": "#/definitions/S3Location" + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "BundleType": { + "type": "string" + }, + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupPairInfo": { + "additionalProperties": false, + "properties": { + "ProdTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + }, + "TargetGroups": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TestTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + } + }, + "type": "object" + }, + "TrafficRoute": { + "additionalProperties": false, + "properties": { + "ListenerArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerEvents": { + "items": { + "enum": [ + "DeploymentStart", + "DeploymentSuccess", + "DeploymentFailure", + "DeploymentStop", + "DeploymentRollback", + "DeploymentReady", + "InstanceStart", + "InstanceSuccess", + "InstanceFailure", + "InstanceReady" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "TriggerName": { + "type": "string" + }, + "TriggerTargetArn": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AlarmConfiguration": { + "$ref": "#/definitions/AlarmConfiguration" + }, + "ApplicationName": { + "type": "string" + }, + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AutoRollbackConfiguration" + }, + "AutoScalingGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BlueGreenDeploymentConfiguration": { + "$ref": "#/definitions/BlueGreenDeploymentConfiguration" + }, + "Deployment": { + "$ref": "#/definitions/Deployment" + }, + "DeploymentConfigName": { + "type": "string" + }, + "DeploymentGroupName": { + "type": "string" + }, + "DeploymentStyle": { + "$ref": "#/definitions/DeploymentStyle" + }, + "ECSServices": { + "items": { + "$ref": "#/definitions/ECSService" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagFilters": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagSet": { + "$ref": "#/definitions/EC2TagSet" + }, + "Id": { + "type": "string" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/LoadBalancerInfo" + }, + "OnPremisesInstanceTagFilters": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "OnPremisesTagSet": { + "$ref": "#/definitions/OnPremisesTagSet" + }, + "OutdatedInstancesStrategy": { + "type": "string" + }, + "ServiceRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TerminationHookEnabled": { + "type": "boolean" + }, + "TriggerConfigurations": { + "items": { + "$ref": "#/definitions/TriggerConfig" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "ServiceRoleArn" + ], + "typeName": "AWS::CodeDeploy::DeploymentGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-connect-user.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-connect-user.json new file mode 100644 index 0000000000..b949608f4f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-connect-user.json @@ -0,0 +1,241 @@ +{ + "additionalProperties": false, + "definitions": { + "AfterContactWorkTimeLimit": { + "description": "The After Call Work (ACW) timeout setting, in seconds.", + "minimum": 0, + "type": "integer" + }, + "AutoAccept": { + "description": "The Auto accept setting.", + "type": "boolean" + }, + "DeskPhoneNumber": { + "description": "The phone number for the user's desk phone.", + "type": "string" + }, + "Email": { + "description": "The email address. If you are using SAML for identity management and include this parameter, an error is returned.", + "type": "string" + }, + "FirstName": { + "description": "The first name. This is required if you are using Amazon Connect or SAML for identity management.", + "type": "string" + }, + "LastName": { + "description": "The last name. This is required if you are using Amazon Connect or SAML for identity management.", + "type": "string" + }, + "Mobile": { + "description": "The mobile phone number.", + "pattern": "^\\+[1-9]\\d{1,14}$", + "type": "string" + }, + "PhoneType": { + "description": "The phone type.", + "enum": [ + "SOFT_PHONE", + "DESK_PHONE" + ], + "type": "string" + }, + "SecondaryEmail": { + "description": "The secondary email address. If you provide a secondary email, the user receives email notifications -- other than password reset notifications -- to this email address instead of to their primary email address.", + "pattern": "(?=^.{0,265}$)[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,63}", + "type": "string" + }, + "SecurityProfileArn": { + "description": "The identifier of the security profile for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/security-profile/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is maximum of 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserIdentityInfo": { + "additionalProperties": false, + "description": "Contains information about the identity of a user.", + "properties": { + "Email": { + "$ref": "#/definitions/Email" + }, + "FirstName": { + "$ref": "#/definitions/FirstName" + }, + "LastName": { + "$ref": "#/definitions/LastName" + }, + "Mobile": { + "$ref": "#/definitions/Mobile" + }, + "SecondaryEmail": { + "$ref": "#/definitions/SecondaryEmail" + } + }, + "type": "object" + }, + "UserPhoneConfig": { + "additionalProperties": false, + "description": "Contains information about the phone configuration settings for a user.", + "properties": { + "AfterContactWorkTimeLimit": { + "$ref": "#/definitions/AfterContactWorkTimeLimit" + }, + "AutoAccept": { + "$ref": "#/definitions/AutoAccept" + }, + "DeskPhoneNumber": { + "$ref": "#/definitions/DeskPhoneNumber" + }, + "PhoneType": { + "$ref": "#/definitions/PhoneType" + } + }, + "required": [ + "PhoneType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Connect::User", + "handlers": { + "create": { + "permissions": [ + "connect:CreateUser", + "connect:TagResource", + "connect:AssociateUserProficiencies" + ] + }, + "delete": { + "permissions": [ + "connect:DeleteUser", + "connect:UntagResource" + ] + }, + "read": { + "permissions": [ + "connect:DescribeUser", + "connect:ListUserProficiencies" + ] + }, + "update": { + "permissions": [ + "connect:UpdateUserIdentityInfo", + "connect:UpdateUserPhoneConfig", + "connect:UpdateUserRoutingProfile", + "connect:UpdateUserSecurityProfiles", + "connect:UpdateUserHierarchy", + "connect:TagResource", + "connect:UntagResource", + "connect:AssociateUserProficiencies", + "connect:DisassociateUserProficiencies", + "connect:UpdateUserProficiencies" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserArn" + ], + "properties": { + "DirectoryUserId": { + "description": "The identifier of the user account in the directory used for identity management.", + "type": "string" + }, + "HierarchyGroupArn": { + "description": "The identifier of the hierarchy group for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group/[-a-zA-Z0-9]*$", + "type": "string" + }, + "IdentityInfo": { + "$ref": "#/definitions/UserIdentityInfo", + "description": "The information about the identity of the user." + }, + "InstanceArn": { + "description": "The identifier of the Amazon Connect instance.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Password": { + "description": "The password for the user account. A password is required if you are using Amazon Connect for identity management. Otherwise, it is an error to include a password.", + "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d\\S]{8,64}$", + "type": "string" + }, + "PhoneConfig": { + "$ref": "#/definitions/UserPhoneConfig", + "description": "The phone settings for the user." + }, + "RoutingProfileArn": { + "description": "The identifier of the routing profile for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/routing-profile/[-a-zA-Z0-9]*$", + "type": "string" + }, + "SecurityProfileArns": { + "description": "One or more security profile arns for the user", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SecurityProfileArn" + }, + "maxItems": 10, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "description": "One or more tags.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserArn": { + "description": "The Amazon Resource Name (ARN) for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Username": { + "description": "The user name for the account.", + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\_\\-\\.\\@]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/UserArn" + ], + "required": [ + "InstanceArn", + "PhoneConfig", + "RoutingProfileArn", + "SecurityProfileArns", + "Username" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "typeName": "AWS::Connect::User", + "writeOnlyProperties": [ + "/properties/Password" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-dms-replicationconfig.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-dms-replicationconfig.json deleted file mode 100644 index 15358362ce..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-dms-replicationconfig.json +++ /dev/null @@ -1,194 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicationConfigIdentifier" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ResourceIdentifier" - ], - "definitions": { - "ComputeConfig": { - "additionalProperties": false, - "description": "Configuration parameters for provisioning a AWS DMS Serverless replication", - "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, - "description": "

The key or keys of the key-value pairs for the resource tag or tags assigned to the\n resource.

", - "properties": { - "Key": { - "description": "

Tag key.

", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "

Tag value.

", - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "A replication configuration that you later provide to configure and start a AWS DMS Serverless replication", - "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:RemoveTagsToResource", - "dms:ListTagsForResource", - "iam:CreateServiceLinkedRole", - "iam:AttachRolePolicy", - "iam:PutRolePolicy", - "iam:UpdateRoleDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicationConfigArn" - ], - "properties": { - "ComputeConfig": { - "$ref": "#/definitions/ComputeConfig" - }, - "ReplicationConfigArn": { - "description": "The Amazon Resource Name (ARN) of the Replication Config", - "type": "string" - }, - "ReplicationConfigIdentifier": { - "description": "A unique identifier of replication configuration", - "type": "string" - }, - "ReplicationSettings": { - "description": "JSON settings for Servereless replications that are provisioned using this replication configuration", - "type": "object" - }, - "ReplicationType": { - "description": "The type of AWS DMS Serverless replication to provision using this replication configuration", - "enum": [ - "full-load", - "full-load-and-cdc", - "cdc" - ], - "type": "string" - }, - "ResourceIdentifier": { - "description": "A unique value or name that you get set for a given resource that can be used to construct an Amazon Resource Name (ARN) for that resource", - "type": "string" - }, - "SourceEndpointArn": { - "description": "The Amazon Resource Name (ARN) of the source endpoint for this AWS DMS Serverless replication configuration", - "type": "string" - }, - "SupplementalSettings": { - "description": "JSON settings for specifying supplemental data", - "type": "object" - }, - "TableMappings": { - "description": "JSON table mappings for AWS DMS Serverless replications that are provisioned using this replication configuration", - "type": "object" - }, - "Tags": { - "description": "

Contains a map of the key-value pairs for the resource tag or tags assigned to the dataset.

", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 1, - "type": "array" - }, - "TargetEndpointArn": { - "description": "The Amazon Resource Name (ARN) of the target endpoint for this AWS DMS Serverless replication configuration", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/ReplicationConfigArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-dms", - "tagging": { - "cloudFormationSystemTags": false, - "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-memorydb-user.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-elasticache-user.json similarity index 59% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-memorydb-user.json rename to src/cfnlint/data/schemas/providers/ap_south_1/aws-elasticache-user.json index 406f6e99f7..9aca62e6f8 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-memorydb-user.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-elasticache-user.json @@ -1,7 +1,9 @@ { "additionalProperties": false, "createOnlyProperties": [ - "/properties/UserName" + "/properties/UserId", + "/properties/UserName", + "/properties/Engine" ], "definitions": { "Tag": { @@ -29,46 +31,46 @@ "type": "object" } }, - "description": "Resource Type definition for AWS::MemoryDB::User", + "description": "Resource Type definition for AWS::ElastiCache::User", "handlers": { "create": { "permissions": [ - "memorydb:CreateUser", - "memorydb:DescribeUsers", - "memorydb:TagResource", - "memorydb:ListTags" + "elasticache:CreateUser", + "elasticache:DescribeUsers", + "elasticache:ListTagsForResource", + "elasticache:AddTagsToResource" ] }, "delete": { "permissions": [ - "memorydb:DeleteUser", - "memorydb:DescribeUsers" + "elasticache:DeleteUser", + "elasticache:DescribeUsers" ] }, "list": { "permissions": [ - "memorydb:DescribeUsers", - "memorydb:ListTags" + "elasticache:DescribeUsers", + "elasticache:ListTagsForResource" ] }, "read": { "permissions": [ - "memorydb:DescribeUsers", - "memorydb:ListTags" + "elasticache:DescribeUsers", + "elasticache:ListTagsForResource" ] }, "update": { "permissions": [ - "memorydb:UpdateUser", - "memorydb:DescribeUsers", - "memorydb:ListTags", - "memorydb:TagResource", - "memorydb:UntagResource" + "elasticache:ModifyUser", + "elasticache:DescribeUsers", + "elasticache:ListTagsForResource", + "elasticache:AddTagsToResource", + "elasticache:RemoveTagsFromResource" ] } }, "primaryIdentifier": [ - "/properties/UserName" + "/properties/UserId" ], "properties": { "AccessString": { @@ -89,22 +91,45 @@ "items": { "type": "string" }, - "maxItems": 2, - "minItems": 1, "type": "array", "uniqueItems": true }, "Type": { - "description": "Type of authentication strategy for this user.", + "description": "Authentication Type", "enum": [ "password", + "no-password-required", "iam" ], "type": "string" } }, + "required": [ + "Type" + ], "type": "object" }, + "Engine": { + "description": "Must be redis.", + "enum": [ + "redis" + ], + "type": "string" + }, + "NoPasswordRequired": { + "description": "Indicates a password is not required for this user account.", + "type": "boolean" + }, + "Passwords": { + "$comment": "List of passwords.", + "description": "Passwords used for this user account. You can create up to two passwords for each user.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, "Status": { "description": "Indicates the user status. Can be \"active\", \"modifying\" or \"deleting\".", "type": "string" @@ -119,10 +144,14 @@ "type": "array", "uniqueItems": true }, - "UserName": { - "description": "The name of the user.", + "UserId": { + "description": "The ID of the user.", "pattern": "[a-z][a-z0-9\\\\-]*", "type": "string" + }, + "UserName": { + "description": "The username of the user.", + "type": "string" } }, "readOnlyProperties": [ @@ -130,13 +159,23 @@ "/properties/Arn" ], "required": [ - "UserName" + "UserId", + "UserName", + "Engine" ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-memorydb", - "taggable": true, - "typeName": "AWS::MemoryDB::User", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticache", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElastiCache::User", "writeOnlyProperties": [ - "/properties/AuthenticationMode", - "/properties/AccessString" + "/properties/Passwords", + "/properties/NoPasswordRequired", + "/properties/AccessString", + "/properties/AuthenticationMode" ] } diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-memorydb-acl.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-elasticache-usergroup.json similarity index 56% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-memorydb-acl.json rename to src/cfnlint/data/schemas/providers/ap_south_1/aws-elasticache-usergroup.json index cef6cec217..9ae0857ed5 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-memorydb-acl.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-elasticache-usergroup.json @@ -1,7 +1,8 @@ { "additionalProperties": false, "createOnlyProperties": [ - "/properties/ACLName" + "/properties/UserGroupId", + "/properties/Engine" ], "definitions": { "Tag": { @@ -29,64 +30,67 @@ "type": "object" } }, - "description": "Resource Type definition for AWS::MemoryDB::ACL", + "description": "Resource Type definition for AWS::ElastiCache::UserGroup", "handlers": { "create": { "permissions": [ - "memorydb:CreateACL", - "memorydb:DescribeACLs", - "memorydb:TagResource", - "memorydb:ListTags" + "elasticache:CreateUserGroup", + "elasticache:DescribeUserGroups", + "elasticache:ListTagsForResource", + "elasticache:AddTagsToResource" ] }, "delete": { "permissions": [ - "memorydb:ModifyReplicationGroup", - "memorydb:DeleteACL", - "memorydb:DescribeACLs" + "elasticache:ModifyReplicationGroup", + "elasticache:DeleteUserGroup", + "elasticache:DescribeUserGroups", + "elasticache:ListTagsForResource" ] }, "list": { "permissions": [ - "memorydb:DescribeACLs", - "memorydb:ListTags" + "elasticache:DescribeUserGroups", + "elasticache:ListTagsForResource" ] }, "read": { "permissions": [ - "memorydb:DescribeACLs", - "memorydb:ListTags" + "elasticache:DescribeUserGroups", + "elasticache:ListTagsForResource" ] }, "update": { "permissions": [ - "memorydb:UpdateACL", - "memorydb:DescribeACLs", - "memorydb:ListTags", - "memorydb:TagResource", - "memorydb:UntagResource" + "elasticache:ModifyUserGroup", + "elasticache:DescribeUserGroups", + "elasticache:ListTagsForResource", + "elasticache:AddTagsToResource", + "elasticache:RemoveTagsFromResource" ] } }, "primaryIdentifier": [ - "/properties/ACLName" + "/properties/UserGroupId" ], "properties": { - "ACLName": { - "description": "The name of the acl.", - "pattern": "[a-z][a-z0-9\\\\-]*", + "Arn": { + "description": "The Amazon Resource Name (ARN) of the user account.", "type": "string" }, - "Arn": { - "description": "The Amazon Resource Name (ARN) of the acl.", + "Engine": { + "description": "Must be redis.", + "enum": [ + "redis" + ], "type": "string" }, "Status": { - "description": "Indicates acl status. Can be \"creating\", \"active\", \"modifying\", \"deleting\".", + "description": "Indicates user group status. Can be \"creating\", \"active\", \"modifying\", \"deleting\".", "type": "string" }, "Tags": { - "description": "An array of key-value pairs to apply to this cluster.", + "description": "An array of key-value pairs to apply to this user.", "insertionOrder": false, "items": { "$ref": "#/definitions/Tag" @@ -95,10 +99,15 @@ "type": "array", "uniqueItems": true }, - "UserNames": { + "UserGroupId": { + "description": "The ID of the user group.", + "pattern": "[a-z][a-z0-9\\\\-]*", + "type": "string" + }, + "UserIds": { "$comment": "List of users.", - "description": "List of users associated to this acl.", - "insertionOrder": true, + "description": "List of users associated to this user group.", + "insertionOrder": false, "items": { "type": "string" }, @@ -111,9 +120,17 @@ "/properties/Arn" ], "required": [ - "ACLName" + "UserGroupId", + "Engine", + "UserIds" ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-memorydb", - "taggable": true, - "typeName": "AWS::MemoryDB::ACL" + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticache", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ElastiCache::UserGroup" } diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-emr-cluster.json new file mode 100644 index 0000000000..7ce37fccb6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-emr-cluster.json @@ -0,0 +1,858 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Steps", + "/properties/EbsRootVolumeSize", + "/properties/SecurityConfiguration", + "/properties/ScaleDownBehavior", + "/properties/Configurations", + "/properties/ReleaseLabel", + "/properties/BootstrapActions", + "/properties/EbsRootVolumeIops", + "/properties/KerberosAttributes", + "/properties/ServiceRole", + "/properties/LogEncryptionKmsKeyId", + "/properties/Name", + "/properties/EbsRootVolumeThroughput", + "/properties/JobFlowRole", + "/properties/AdditionalInfo", + "/properties/LogUri", + "/properties/CustomAmiId", + "/properties/PlacementGroupConfigs", + "/properties/OSReleaseLabel", + "/properties/AutoScalingRole", + "/properties/Applications" + ], + "definitions": { + "Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ScalingRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/ScriptBootstrapActionConfig" + } + }, + "required": [ + "ScriptBootstrapAction", + "Name" + ], + "type": "object" + }, + "CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "EvaluationPeriods": { + "type": "integer" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "integer" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "ComparisonOperator", + "Period", + "Threshold" + ], + "type": "object" + }, + "ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "integer" + }, + "MaximumCoreCapacityUnits": { + "type": "integer" + }, + "MaximumOnDemandCapacityUnits": { + "type": "integer" + }, + "MinimumCapacityUnits": { + "type": "integer" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "UnitType", + "MaximumCapacityUnits", + "MinimumCapacityUnits" + ], + "type": "object" + }, + "Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "integer" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/EbsBlockDeviceConfig" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/KeyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/InstanceTypeConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchSpecifications": { + "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "integer" + }, + "TargetSpotCapacity": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/OnDemandProvisioningSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/SpotProvisioningSpecification" + } + }, + "type": "object" + }, + "InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceType": { + "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", + "type": "string" + }, + "WeightedCapacity": { + "type": "integer" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/ComputeLimits" + } + }, + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "PlacementGroupConfig": { + "additionalProperties": false, + "properties": { + "InstanceRole": { + "type": "string" + }, + "PlacementStrategy": { + "type": "string" + } + }, + "required": [ + "InstanceRole" + ], + "type": "object" + }, + "PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/ScalingTrigger" + } + }, + "required": [ + "Action", + "Trigger", + "Name" + ], + "type": "object" + }, + "ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BlockDurationMinutes": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "integer" + } + }, + "required": [ + "TimeoutDurationMinutes", + "TimeoutAction" + ], + "type": "object" + }, + "StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "integer" + }, + "SizeInGB": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EMR::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/Application" + }, + "type": "array", + "uniqueItems": true + }, + "AutoScalingRole": { + "type": "string" + }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AutoTerminationPolicy" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/BootstrapActionConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeIops": { + "type": "integer" + }, + "EbsRootVolumeSize": { + "type": "integer" + }, + "EbsRootVolumeThroughput": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Instances": { + "$ref": "#/definitions/JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/KerberosAttributes" + }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, + "LogUri": { + "type": "string" + }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/ManagedScalingPolicy" + }, + "MasterPublicDNS": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OSReleaseLabel": { + "type": "string" + }, + "PlacementGroupConfigs": { + "items": { + "$ref": "#/definitions/PlacementGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "StepConcurrencyLevel": { + "type": "integer" + }, + "Steps": { + "items": { + "$ref": "#/definitions/StepConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/MasterPublicDNS" + ], + "required": [ + "Instances", + "ServiceRole", + "JobFlowRole", + "Name" + ], + "typeName": "AWS::EMR::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-eventschemas-discoverer.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-eventschemas-discoverer.json deleted file mode 100644 index 791d433995..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-eventschemas-discoverer.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SourceArn" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EventSchemas::Discoverer", - "primaryIdentifier": [ - "/properties/DiscovererId" - ], - "properties": { - "CrossAccount": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DiscovererArn": { - "type": "string" - }, - "DiscovererId": { - "type": "string" - }, - "SourceArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/DiscovererId", - "/properties/DiscovererArn" - ], - "required": [ - "SourceArn" - ], - "typeName": "AWS::EventSchemas::Discoverer" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-guardduty-detector.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-guardduty-detector.json deleted file mode 100644 index c345988502..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-guardduty-detector.json +++ /dev/null @@ -1,229 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "CFNDataSourceConfigurations": { - "additionalProperties": false, - "properties": { - "Kubernetes": { - "$ref": "#/definitions/CFNKubernetesConfiguration" - }, - "MalwareProtection": { - "$ref": "#/definitions/CFNMalwareProtectionConfiguration" - }, - "S3Logs": { - "$ref": "#/definitions/CFNS3LogsConfiguration" - } - }, - "type": "object" - }, - "CFNFeatureAdditionalConfiguration": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Status": { - "maxLength": 128, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "CFNFeatureConfiguration": { - "additionalProperties": false, - "properties": { - "AdditionalConfiguration": { - "items": { - "$ref": "#/definitions/CFNFeatureAdditionalConfiguration" - }, - "type": "array" - }, - "Name": { - "enum": [ - "S3_DATA_EVENTS", - "EKS_AUDIT_LOGS", - "EBS_MALWARE_PROTECTION", - "RDS_LOGIN_EVENTS", - "LAMBDA_NETWORK_LOGS", - "EKS_RUNTIME_MONITORING" - ], - "type": "string" - }, - "Status": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - } - }, - "required": [ - "Name", - "Status" - ], - "type": "object" - }, - "CFNKubernetesAuditLogsConfiguration": { - "additionalProperties": false, - "properties": { - "Enable": { - "type": "boolean" - } - }, - "required": [ - "Enable" - ], - "type": "object" - }, - "CFNKubernetesConfiguration": { - "additionalProperties": false, - "properties": { - "AuditLogs": { - "$ref": "#/definitions/CFNKubernetesAuditLogsConfiguration" - } - }, - "required": [ - "AuditLogs" - ], - "type": "object" - }, - "CFNMalwareProtectionConfiguration": { - "additionalProperties": false, - "properties": { - "ScanEc2InstanceWithFindings": { - "$ref": "#/definitions/CFNScanEc2InstanceWithFindingsConfiguration" - } - }, - "type": "object" - }, - "CFNS3LogsConfiguration": { - "additionalProperties": false, - "properties": { - "Enable": { - "type": "boolean" - } - }, - "required": [ - "Enable" - ], - "type": "object" - }, - "CFNScanEc2InstanceWithFindingsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsVolumes": { - "type": "boolean" - } - }, - "type": "object" - }, - "TagItem": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::GuardDuty::Detector", - "handlers": { - "create": { - "permissions": [ - "guardduty:CreateDetector", - "guardduty:GetDetector", - "guardduty:TagResource", - "iam:CreateServiceLinkedRole", - "iam:GetRole" - ] - }, - "delete": { - "permissions": [ - "guardduty:ListDetectors", - "guardduty:DeleteDetector", - "guardduty:GetDetector" - ] - }, - "list": { - "permissions": [ - "guardduty:ListDetectors" - ] - }, - "read": { - "permissions": [ - "guardduty:GetDetector" - ] - }, - "update": { - "permissions": [ - "guardduty:UpdateDetector", - "guardduty:GetDetector", - "guardduty:ListDetectors", - "iam:CreateServiceLinkedRole", - "iam:GetRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "DataSources": { - "$ref": "#/definitions/CFNDataSourceConfigurations" - }, - "Enable": { - "type": "boolean" - }, - "Features": { - "items": { - "$ref": "#/definitions/CFNFeatureConfiguration" - }, - "type": "array" - }, - "FindingPublishingFrequency": { - "enum": [ - "FIFTEEN_MINUTES", - "ONE_HOUR", - "SIX_HOURS" - ], - "type": "string" - }, - "Id": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/TagItem" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Enable" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": false, - "taggable": true - }, - "typeName": "AWS::GuardDuty::Detector" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-imagebuilder-image.json new file mode 100644 index 0000000000..5582329923 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-imagebuilder-image.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ImageRecipeArn", + "/properties/ContainerRecipeArn", + "/properties/InfrastructureConfigurationArn", + "/properties/DistributionConfigurationArn", + "/properties/ImageTestsConfiguration", + "/properties/ImageScanningConfiguration", + "/properties/EnhancedImageMetadataEnabled", + "/properties/Tags" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Contains settings for Image Builder image resource and container image scans.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "The image tests configuration used when creating this image.", + "properties": { + "ImageTestsEnabled": { + "description": "ImageTestsEnabled", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "TimeoutMinutes", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::ImageBuilder::Image", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:GetImage", + "imagebuilder:CreateImage", + "imagebuilder:TagResource", + "inspector2:BatchGetAccountStatus" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "imagebuilder:GetImage", + "imagebuilder:DeleteImage", + "imagebuilder:UnTagResource", + "imagebuilder:CancelImageCreation" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListImages" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImage" + ] + } + }, + "oneOf": [ + { + "required": [ + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ImageId": { + "description": "The AMI ID of the EC2 AMI in current region.", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration used when creating this image." + }, + "ImageUri": { + "description": "URI for containers created in current Region with default ECR image tag", + "type": "string" + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", + "type": "string" + }, + "Name": { + "description": "The name of the image.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the image.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Name", + "/properties/ImageId", + "/properties/ImageUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Image" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-imagebuilder-imagepipeline.json new file mode 100644 index 0000000000..5b70e0ff38 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-imagebuilder-imagepipeline.json @@ -0,0 +1,213 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "Image tests configuration.", + "properties": { + "ImageTestsEnabled": { + "description": "Defines if tests should be executed when building this image.", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "The maximum time in minutes that tests are permitted to run.", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "description": "The schedule of the image pipeline.", + "properties": { + "PipelineExecutionStartCondition": { + "description": "The condition configures when the pipeline should trigger a new image build.", + "enum": [ + "EXPRESSION_MATCH_ONLY", + "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + ], + "type": "string" + }, + "ScheduleExpression": { + "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:CreateImagePipeline", + "imagebuilder:GetWorkflow", + "inspector2:BatchGetAccountStatus" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:UnTagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:DeleteImagePipeline" + ] + }, + "list": { + "permissions": [ + "imagebuilder:ListImagePipelines" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImagePipeline" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "imagebuilder:GetImagePipeline", + "imagebuilder:UpdateImagePipeline", + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Name", + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "Name", + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image pipeline.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "Description": { + "description": "The description of the image pipeline.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration of the image pipeline." + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", + "type": "string" + }, + "Name": { + "description": "The name of the image pipeline.", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule", + "description": "The schedule of the image pipeline." + }, + "Status": { + "description": "The status of the image pipeline.", + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags of this image pipeline.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::ImagePipeline" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-medialive-channel.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-medialive-channel.json deleted file mode 100644 index d5a7dd8e34..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-medialive-channel.json +++ /dev/null @@ -1,3160 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Vpc" - ], - "definitions": { - "AacSettings": { - "additionalProperties": false, - "properties": { - "Bitrate": { - "type": "number" - }, - "CodingMode": { - "type": "string" - }, - "InputType": { - "type": "string" - }, - "Profile": { - "type": "string" - }, - "RateControlMode": { - "type": "string" - }, - "RawFormat": { - "type": "string" - }, - "SampleRate": { - "type": "number" - }, - "Spec": { - "type": "string" - }, - "VbrQuality": { - "type": "string" - } - }, - "type": "object" - }, - "Ac3Settings": { - "additionalProperties": false, - "properties": { - "AttenuationControl": { - "type": "string" - }, - "Bitrate": { - "type": "number" - }, - "BitstreamMode": { - "type": "string" - }, - "CodingMode": { - "type": "string" - }, - "Dialnorm": { - "type": "integer" - }, - "DrcProfile": { - "type": "string" - }, - "LfeFilter": { - "type": "string" - }, - "MetadataControl": { - "type": "string" - } - }, - "type": "object" - }, - "AncillarySourceSettings": { - "additionalProperties": false, - "properties": { - "SourceAncillaryChannelNumber": { - "type": "integer" - } - }, - "type": "object" - }, - "ArchiveCdnSettings": { - "additionalProperties": false, - "properties": { - "ArchiveS3Settings": { - "$ref": "#/definitions/ArchiveS3Settings" - } - }, - "type": "object" - }, - "ArchiveContainerSettings": { - "additionalProperties": false, - "properties": { - "M2tsSettings": { - "$ref": "#/definitions/M2tsSettings" - }, - "RawSettings": { - "$ref": "#/definitions/RawSettings" - } - }, - "type": "object" - }, - "ArchiveGroupSettings": { - "additionalProperties": false, - "properties": { - "ArchiveCdnSettings": { - "$ref": "#/definitions/ArchiveCdnSettings" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "RolloverInterval": { - "type": "integer" - } - }, - "type": "object" - }, - "ArchiveOutputSettings": { - "additionalProperties": false, - "properties": { - "ContainerSettings": { - "$ref": "#/definitions/ArchiveContainerSettings" - }, - "Extension": { - "type": "string" - }, - "NameModifier": { - "type": "string" - } - }, - "type": "object" - }, - "ArchiveS3Settings": { - "additionalProperties": false, - "properties": { - "CannedAcl": { - "type": "string" - } - }, - "type": "object" - }, - "AribDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "AribSourceSettings": { - "additionalProperties": false, - "type": "object" - }, - "AudioChannelMapping": { - "additionalProperties": false, - "properties": { - "InputChannelLevels": { - "items": { - "$ref": "#/definitions/InputChannelLevel" - }, - "type": "array", - "uniqueItems": false - }, - "OutputChannel": { - "type": "integer" - } - }, - "type": "object" - }, - "AudioCodecSettings": { - "additionalProperties": false, - "properties": { - "AacSettings": { - "$ref": "#/definitions/AacSettings" - }, - "Ac3Settings": { - "$ref": "#/definitions/Ac3Settings" - }, - "Eac3AtmosSettings": { - "$ref": "#/definitions/Eac3AtmosSettings" - }, - "Eac3Settings": { - "$ref": "#/definitions/Eac3Settings" - }, - "Mp2Settings": { - "$ref": "#/definitions/Mp2Settings" - }, - "PassThroughSettings": { - "$ref": "#/definitions/PassThroughSettings" - }, - "WavSettings": { - "$ref": "#/definitions/WavSettings" - } - }, - "type": "object" - }, - "AudioDescription": { - "additionalProperties": false, - "properties": { - "AudioNormalizationSettings": { - "$ref": "#/definitions/AudioNormalizationSettings" - }, - "AudioSelectorName": { - "type": "string" - }, - "AudioType": { - "type": "string" - }, - "AudioTypeControl": { - "type": "string" - }, - "AudioWatermarkingSettings": { - "$ref": "#/definitions/AudioWatermarkSettings" - }, - "CodecSettings": { - "$ref": "#/definitions/AudioCodecSettings" - }, - "LanguageCode": { - "type": "string" - }, - "LanguageCodeControl": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "RemixSettings": { - "$ref": "#/definitions/RemixSettings" - }, - "StreamName": { - "type": "string" - } - }, - "type": "object" - }, - "AudioDolbyEDecode": { - "additionalProperties": false, - "properties": { - "ProgramSelection": { - "type": "string" - } - }, - "type": "object" - }, - "AudioHlsRenditionSelection": { - "additionalProperties": false, - "properties": { - "GroupId": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AudioLanguageSelection": { - "additionalProperties": false, - "properties": { - "LanguageCode": { - "type": "string" - }, - "LanguageSelectionPolicy": { - "type": "string" - } - }, - "type": "object" - }, - "AudioNormalizationSettings": { - "additionalProperties": false, - "properties": { - "Algorithm": { - "type": "string" - }, - "AlgorithmControl": { - "type": "string" - }, - "TargetLkfs": { - "type": "number" - } - }, - "type": "object" - }, - "AudioOnlyHlsSettings": { - "additionalProperties": false, - "properties": { - "AudioGroupId": { - "type": "string" - }, - "AudioOnlyImage": { - "$ref": "#/definitions/InputLocation" - }, - "AudioTrackType": { - "type": "string" - }, - "SegmentType": { - "type": "string" - } - }, - "type": "object" - }, - "AudioPidSelection": { - "additionalProperties": false, - "properties": { - "Pid": { - "type": "integer" - } - }, - "type": "object" - }, - "AudioSelector": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "SelectorSettings": { - "$ref": "#/definitions/AudioSelectorSettings" - } - }, - "type": "object" - }, - "AudioSelectorSettings": { - "additionalProperties": false, - "properties": { - "AudioHlsRenditionSelection": { - "$ref": "#/definitions/AudioHlsRenditionSelection" - }, - "AudioLanguageSelection": { - "$ref": "#/definitions/AudioLanguageSelection" - }, - "AudioPidSelection": { - "$ref": "#/definitions/AudioPidSelection" - }, - "AudioTrackSelection": { - "$ref": "#/definitions/AudioTrackSelection" - } - }, - "type": "object" - }, - "AudioSilenceFailoverSettings": { - "additionalProperties": false, - "properties": { - "AudioSelectorName": { - "type": "string" - }, - "AudioSilenceThresholdMsec": { - "type": "integer" - } - }, - "type": "object" - }, - "AudioTrack": { - "additionalProperties": false, - "properties": { - "Track": { - "type": "integer" - } - }, - "type": "object" - }, - "AudioTrackSelection": { - "additionalProperties": false, - "properties": { - "DolbyEDecode": { - "$ref": "#/definitions/AudioDolbyEDecode" - }, - "Tracks": { - "items": { - "$ref": "#/definitions/AudioTrack" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "AudioWatermarkSettings": { - "additionalProperties": false, - "properties": { - "NielsenWatermarksSettings": { - "$ref": "#/definitions/NielsenWatermarksSettings" - } - }, - "type": "object" - }, - "AutomaticInputFailoverSettings": { - "additionalProperties": false, - "properties": { - "ErrorClearTimeMsec": { - "type": "integer" - }, - "FailoverConditions": { - "items": { - "$ref": "#/definitions/FailoverCondition" - }, - "type": "array", - "uniqueItems": false - }, - "InputPreference": { - "type": "string" - }, - "SecondaryInputId": { - "type": "string" - } - }, - "type": "object" - }, - "AvailBlanking": { - "additionalProperties": false, - "properties": { - "AvailBlankingImage": { - "$ref": "#/definitions/InputLocation" - }, - "State": { - "type": "string" - } - }, - "type": "object" - }, - "AvailConfiguration": { - "additionalProperties": false, - "properties": { - "AvailSettings": { - "$ref": "#/definitions/AvailSettings" - } - }, - "type": "object" - }, - "AvailSettings": { - "additionalProperties": false, - "properties": { - "Esam": { - "$ref": "#/definitions/Esam" - }, - "Scte35SpliceInsert": { - "$ref": "#/definitions/Scte35SpliceInsert" - }, - "Scte35TimeSignalApos": { - "$ref": "#/definitions/Scte35TimeSignalApos" - } - }, - "type": "object" - }, - "BlackoutSlate": { - "additionalProperties": false, - "properties": { - "BlackoutSlateImage": { - "$ref": "#/definitions/InputLocation" - }, - "NetworkEndBlackout": { - "type": "string" - }, - "NetworkEndBlackoutImage": { - "$ref": "#/definitions/InputLocation" - }, - "NetworkId": { - "type": "string" - }, - "State": { - "type": "string" - } - }, - "type": "object" - }, - "BurnInDestinationSettings": { - "additionalProperties": false, - "properties": { - "Alignment": { - "type": "string" - }, - "BackgroundColor": { - "type": "string" - }, - "BackgroundOpacity": { - "type": "integer" - }, - "Font": { - "$ref": "#/definitions/InputLocation" - }, - "FontColor": { - "type": "string" - }, - "FontOpacity": { - "type": "integer" - }, - "FontResolution": { - "type": "integer" - }, - "FontSize": { - "type": "string" - }, - "OutlineColor": { - "type": "string" - }, - "OutlineSize": { - "type": "integer" - }, - "ShadowColor": { - "type": "string" - }, - "ShadowOpacity": { - "type": "integer" - }, - "ShadowXOffset": { - "type": "integer" - }, - "ShadowYOffset": { - "type": "integer" - }, - "TeletextGridControl": { - "type": "string" - }, - "XPosition": { - "type": "integer" - }, - "YPosition": { - "type": "integer" - } - }, - "type": "object" - }, - "CaptionDescription": { - "additionalProperties": false, - "properties": { - "Accessibility": { - "type": "string" - }, - "CaptionSelectorName": { - "type": "string" - }, - "DestinationSettings": { - "$ref": "#/definitions/CaptionDestinationSettings" - }, - "LanguageCode": { - "type": "string" - }, - "LanguageDescription": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "CaptionDestinationSettings": { - "additionalProperties": false, - "properties": { - "AribDestinationSettings": { - "$ref": "#/definitions/AribDestinationSettings" - }, - "BurnInDestinationSettings": { - "$ref": "#/definitions/BurnInDestinationSettings" - }, - "DvbSubDestinationSettings": { - "$ref": "#/definitions/DvbSubDestinationSettings" - }, - "EbuTtDDestinationSettings": { - "$ref": "#/definitions/EbuTtDDestinationSettings" - }, - "EmbeddedDestinationSettings": { - "$ref": "#/definitions/EmbeddedDestinationSettings" - }, - "EmbeddedPlusScte20DestinationSettings": { - "$ref": "#/definitions/EmbeddedPlusScte20DestinationSettings" - }, - "RtmpCaptionInfoDestinationSettings": { - "$ref": "#/definitions/RtmpCaptionInfoDestinationSettings" - }, - "Scte20PlusEmbeddedDestinationSettings": { - "$ref": "#/definitions/Scte20PlusEmbeddedDestinationSettings" - }, - "Scte27DestinationSettings": { - "$ref": "#/definitions/Scte27DestinationSettings" - }, - "SmpteTtDestinationSettings": { - "$ref": "#/definitions/SmpteTtDestinationSettings" - }, - "TeletextDestinationSettings": { - "$ref": "#/definitions/TeletextDestinationSettings" - }, - "TtmlDestinationSettings": { - "$ref": "#/definitions/TtmlDestinationSettings" - }, - "WebvttDestinationSettings": { - "$ref": "#/definitions/WebvttDestinationSettings" - } - }, - "type": "object" - }, - "CaptionLanguageMapping": { - "additionalProperties": false, - "properties": { - "CaptionChannel": { - "type": "integer" - }, - "LanguageCode": { - "type": "string" - }, - "LanguageDescription": { - "type": "string" - } - }, - "type": "object" - }, - "CaptionRectangle": { - "additionalProperties": false, - "properties": { - "Height": { - "type": "number" - }, - "LeftOffset": { - "type": "number" - }, - "TopOffset": { - "type": "number" - }, - "Width": { - "type": "number" - } - }, - "type": "object" - }, - "CaptionSelector": { - "additionalProperties": false, - "properties": { - "LanguageCode": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "SelectorSettings": { - "$ref": "#/definitions/CaptionSelectorSettings" - } - }, - "type": "object" - }, - "CaptionSelectorSettings": { - "additionalProperties": false, - "properties": { - "AncillarySourceSettings": { - "$ref": "#/definitions/AncillarySourceSettings" - }, - "AribSourceSettings": { - "$ref": "#/definitions/AribSourceSettings" - }, - "DvbSubSourceSettings": { - "$ref": "#/definitions/DvbSubSourceSettings" - }, - "EmbeddedSourceSettings": { - "$ref": "#/definitions/EmbeddedSourceSettings" - }, - "Scte20SourceSettings": { - "$ref": "#/definitions/Scte20SourceSettings" - }, - "Scte27SourceSettings": { - "$ref": "#/definitions/Scte27SourceSettings" - }, - "TeletextSourceSettings": { - "$ref": "#/definitions/TeletextSourceSettings" - } - }, - "type": "object" - }, - "CdiInputSpecification": { - "additionalProperties": false, - "properties": { - "Resolution": { - "type": "string" - } - }, - "type": "object" - }, - "ColorSpacePassthroughSettings": { - "additionalProperties": false, - "type": "object" - }, - "DolbyVision81Settings": { - "additionalProperties": false, - "type": "object" - }, - "DvbNitSettings": { - "additionalProperties": false, - "properties": { - "NetworkId": { - "type": "integer" - }, - "NetworkName": { - "type": "string" - }, - "RepInterval": { - "type": "integer" - } - }, - "type": "object" - }, - "DvbSdtSettings": { - "additionalProperties": false, - "properties": { - "OutputSdt": { - "type": "string" - }, - "RepInterval": { - "type": "integer" - }, - "ServiceName": { - "type": "string" - }, - "ServiceProviderName": { - "type": "string" - } - }, - "type": "object" - }, - "DvbSubDestinationSettings": { - "additionalProperties": false, - "properties": { - "Alignment": { - "type": "string" - }, - "BackgroundColor": { - "type": "string" - }, - "BackgroundOpacity": { - "type": "integer" - }, - "Font": { - "$ref": "#/definitions/InputLocation" - }, - "FontColor": { - "type": "string" - }, - "FontOpacity": { - "type": "integer" - }, - "FontResolution": { - "type": "integer" - }, - "FontSize": { - "type": "string" - }, - "OutlineColor": { - "type": "string" - }, - "OutlineSize": { - "type": "integer" - }, - "ShadowColor": { - "type": "string" - }, - "ShadowOpacity": { - "type": "integer" - }, - "ShadowXOffset": { - "type": "integer" - }, - "ShadowYOffset": { - "type": "integer" - }, - "TeletextGridControl": { - "type": "string" - }, - "XPosition": { - "type": "integer" - }, - "YPosition": { - "type": "integer" - } - }, - "type": "object" - }, - "DvbSubSourceSettings": { - "additionalProperties": false, - "properties": { - "OcrLanguage": { - "type": "string" - }, - "Pid": { - "type": "integer" - } - }, - "type": "object" - }, - "DvbTdtSettings": { - "additionalProperties": false, - "properties": { - "RepInterval": { - "type": "integer" - } - }, - "type": "object" - }, - "Eac3AtmosSettings": { - "additionalProperties": false, - "properties": { - "Bitrate": { - "type": "number" - }, - "CodingMode": { - "type": "string" - }, - "Dialnorm": { - "type": "integer" - }, - "DrcLine": { - "type": "string" - }, - "DrcRf": { - "type": "string" - }, - "HeightTrim": { - "type": "number" - }, - "SurroundTrim": { - "type": "number" - } - }, - "type": "object" - }, - "Eac3Settings": { - "additionalProperties": false, - "properties": { - "AttenuationControl": { - "type": "string" - }, - "Bitrate": { - "type": "number" - }, - "BitstreamMode": { - "type": "string" - }, - "CodingMode": { - "type": "string" - }, - "DcFilter": { - "type": "string" - }, - "Dialnorm": { - "type": "integer" - }, - "DrcLine": { - "type": "string" - }, - "DrcRf": { - "type": "string" - }, - "LfeControl": { - "type": "string" - }, - "LfeFilter": { - "type": "string" - }, - "LoRoCenterMixLevel": { - "type": "number" - }, - "LoRoSurroundMixLevel": { - "type": "number" - }, - "LtRtCenterMixLevel": { - "type": "number" - }, - "LtRtSurroundMixLevel": { - "type": "number" - }, - "MetadataControl": { - "type": "string" - }, - "PassthroughControl": { - "type": "string" - }, - "PhaseControl": { - "type": "string" - }, - "StereoDownmix": { - "type": "string" - }, - "SurroundExMode": { - "type": "string" - }, - "SurroundMode": { - "type": "string" - } - }, - "type": "object" - }, - "EbuTtDDestinationSettings": { - "additionalProperties": false, - "properties": { - "CopyrightHolder": { - "type": "string" - }, - "FillLineGap": { - "type": "string" - }, - "FontFamily": { - "type": "string" - }, - "StyleControl": { - "type": "string" - } - }, - "type": "object" - }, - "EmbeddedDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "EmbeddedPlusScte20DestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "EmbeddedSourceSettings": { - "additionalProperties": false, - "properties": { - "Convert608To708": { - "type": "string" - }, - "Scte20Detection": { - "type": "string" - }, - "Source608ChannelNumber": { - "type": "integer" - }, - "Source608TrackNumber": { - "type": "integer" - } - }, - "type": "object" - }, - "EncoderSettings": { - "additionalProperties": false, - "properties": { - "AudioDescriptions": { - "items": { - "$ref": "#/definitions/AudioDescription" - }, - "type": "array", - "uniqueItems": false - }, - "AvailBlanking": { - "$ref": "#/definitions/AvailBlanking" - }, - "AvailConfiguration": { - "$ref": "#/definitions/AvailConfiguration" - }, - "BlackoutSlate": { - "$ref": "#/definitions/BlackoutSlate" - }, - "CaptionDescriptions": { - "items": { - "$ref": "#/definitions/CaptionDescription" - }, - "type": "array", - "uniqueItems": false - }, - "FeatureActivations": { - "$ref": "#/definitions/FeatureActivations" - }, - "GlobalConfiguration": { - "$ref": "#/definitions/GlobalConfiguration" - }, - "MotionGraphicsConfiguration": { - "$ref": "#/definitions/MotionGraphicsConfiguration" - }, - "NielsenConfiguration": { - "$ref": "#/definitions/NielsenConfiguration" - }, - "OutputGroups": { - "items": { - "$ref": "#/definitions/OutputGroup" - }, - "type": "array", - "uniqueItems": false - }, - "ThumbnailConfiguration": { - "$ref": "#/definitions/ThumbnailConfiguration" - }, - "TimecodeConfig": { - "$ref": "#/definitions/TimecodeConfig" - }, - "VideoDescriptions": { - "items": { - "$ref": "#/definitions/VideoDescription" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "EpochLockingSettings": { - "additionalProperties": false, - "properties": { - "CustomEpoch": { - "type": "string" - }, - "JamSyncTime": { - "type": "string" - } - }, - "type": "object" - }, - "Esam": { - "additionalProperties": false, - "properties": { - "AcquisitionPointId": { - "type": "string" - }, - "AdAvailOffset": { - "type": "integer" - }, - "PasswordParam": { - "type": "string" - }, - "PoisEndpoint": { - "type": "string" - }, - "Username": { - "type": "string" - }, - "ZoneIdentity": { - "type": "string" - } - }, - "type": "object" - }, - "FailoverCondition": { - "additionalProperties": false, - "properties": { - "FailoverConditionSettings": { - "$ref": "#/definitions/FailoverConditionSettings" - } - }, - "type": "object" - }, - "FailoverConditionSettings": { - "additionalProperties": false, - "properties": { - "AudioSilenceSettings": { - "$ref": "#/definitions/AudioSilenceFailoverSettings" - }, - "InputLossSettings": { - "$ref": "#/definitions/InputLossFailoverSettings" - }, - "VideoBlackSettings": { - "$ref": "#/definitions/VideoBlackFailoverSettings" - } - }, - "type": "object" - }, - "FeatureActivations": { - "additionalProperties": false, - "properties": { - "InputPrepareScheduleActions": { - "type": "string" - }, - "OutputStaticImageOverlayScheduleActions": { - "type": "string" - } - }, - "type": "object" - }, - "FecOutputSettings": { - "additionalProperties": false, - "properties": { - "ColumnDepth": { - "type": "integer" - }, - "IncludeFec": { - "type": "string" - }, - "RowLength": { - "type": "integer" - } - }, - "type": "object" - }, - "Fmp4HlsSettings": { - "additionalProperties": false, - "properties": { - "AudioRenditionSets": { - "type": "string" - }, - "NielsenId3Behavior": { - "type": "string" - }, - "TimedMetadataBehavior": { - "type": "string" - } - }, - "type": "object" - }, - "FrameCaptureCdnSettings": { - "additionalProperties": false, - "properties": { - "FrameCaptureS3Settings": { - "$ref": "#/definitions/FrameCaptureS3Settings" - } - }, - "type": "object" - }, - "FrameCaptureGroupSettings": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "FrameCaptureCdnSettings": { - "$ref": "#/definitions/FrameCaptureCdnSettings" - } - }, - "type": "object" - }, - "FrameCaptureHlsSettings": { - "additionalProperties": false, - "type": "object" - }, - "FrameCaptureOutputSettings": { - "additionalProperties": false, - "properties": { - "NameModifier": { - "type": "string" - } - }, - "type": "object" - }, - "FrameCaptureS3Settings": { - "additionalProperties": false, - "properties": { - "CannedAcl": { - "type": "string" - } - }, - "type": "object" - }, - "FrameCaptureSettings": { - "additionalProperties": false, - "properties": { - "CaptureInterval": { - "type": "integer" - }, - "CaptureIntervalUnits": { - "type": "string" - }, - "TimecodeBurninSettings": { - "$ref": "#/definitions/TimecodeBurninSettings" - } - }, - "type": "object" - }, - "GlobalConfiguration": { - "additionalProperties": false, - "properties": { - "InitialAudioGain": { - "type": "integer" - }, - "InputEndAction": { - "type": "string" - }, - "InputLossBehavior": { - "$ref": "#/definitions/InputLossBehavior" - }, - "OutputLockingMode": { - "type": "string" - }, - "OutputLockingSettings": { - "$ref": "#/definitions/OutputLockingSettings" - }, - "OutputTimingSource": { - "type": "string" - }, - "SupportLowFramerateInputs": { - "type": "string" - } - }, - "type": "object" - }, - "H264ColorSpaceSettings": { - "additionalProperties": false, - "properties": { - "ColorSpacePassthroughSettings": { - "$ref": "#/definitions/ColorSpacePassthroughSettings" - }, - "Rec601Settings": { - "$ref": "#/definitions/Rec601Settings" - }, - "Rec709Settings": { - "$ref": "#/definitions/Rec709Settings" - } - }, - "type": "object" - }, - "H264FilterSettings": { - "additionalProperties": false, - "properties": { - "TemporalFilterSettings": { - "$ref": "#/definitions/TemporalFilterSettings" - } - }, - "type": "object" - }, - "H264Settings": { - "additionalProperties": false, - "properties": { - "AdaptiveQuantization": { - "type": "string" - }, - "AfdSignaling": { - "type": "string" - }, - "Bitrate": { - "type": "integer" - }, - "BufFillPct": { - "type": "integer" - }, - "BufSize": { - "type": "integer" - }, - "ColorMetadata": { - "type": "string" - }, - "ColorSpaceSettings": { - "$ref": "#/definitions/H264ColorSpaceSettings" - }, - "EntropyEncoding": { - "type": "string" - }, - "FilterSettings": { - "$ref": "#/definitions/H264FilterSettings" - }, - "FixedAfd": { - "type": "string" - }, - "FlickerAq": { - "type": "string" - }, - "ForceFieldPictures": { - "type": "string" - }, - "FramerateControl": { - "type": "string" - }, - "FramerateDenominator": { - "type": "integer" - }, - "FramerateNumerator": { - "type": "integer" - }, - "GopBReference": { - "type": "string" - }, - "GopClosedCadence": { - "type": "integer" - }, - "GopNumBFrames": { - "type": "integer" - }, - "GopSize": { - "type": "number" - }, - "GopSizeUnits": { - "type": "string" - }, - "Level": { - "type": "string" - }, - "LookAheadRateControl": { - "type": "string" - }, - "MaxBitrate": { - "type": "integer" - }, - "MinIInterval": { - "type": "integer" - }, - "NumRefFrames": { - "type": "integer" - }, - "ParControl": { - "type": "string" - }, - "ParDenominator": { - "type": "integer" - }, - "ParNumerator": { - "type": "integer" - }, - "Profile": { - "type": "string" - }, - "QualityLevel": { - "type": "string" - }, - "QvbrQualityLevel": { - "type": "integer" - }, - "RateControlMode": { - "type": "string" - }, - "ScanType": { - "type": "string" - }, - "SceneChangeDetect": { - "type": "string" - }, - "Slices": { - "type": "integer" - }, - "Softness": { - "type": "integer" - }, - "SpatialAq": { - "type": "string" - }, - "SubgopLength": { - "type": "string" - }, - "Syntax": { - "type": "string" - }, - "TemporalAq": { - "type": "string" - }, - "TimecodeBurninSettings": { - "$ref": "#/definitions/TimecodeBurninSettings" - }, - "TimecodeInsertion": { - "type": "string" - } - }, - "type": "object" - }, - "H265ColorSpaceSettings": { - "additionalProperties": false, - "properties": { - "ColorSpacePassthroughSettings": { - "$ref": "#/definitions/ColorSpacePassthroughSettings" - }, - "DolbyVision81Settings": { - "$ref": "#/definitions/DolbyVision81Settings" - }, - "Hdr10Settings": { - "$ref": "#/definitions/Hdr10Settings" - }, - "Rec601Settings": { - "$ref": "#/definitions/Rec601Settings" - }, - "Rec709Settings": { - "$ref": "#/definitions/Rec709Settings" - } - }, - "type": "object" - }, - "H265FilterSettings": { - "additionalProperties": false, - "properties": { - "TemporalFilterSettings": { - "$ref": "#/definitions/TemporalFilterSettings" - } - }, - "type": "object" - }, - "H265Settings": { - "additionalProperties": false, - "properties": { - "AdaptiveQuantization": { - "type": "string" - }, - "AfdSignaling": { - "type": "string" - }, - "AlternativeTransferFunction": { - "type": "string" - }, - "Bitrate": { - "type": "integer" - }, - "BufSize": { - "type": "integer" - }, - "ColorMetadata": { - "type": "string" - }, - "ColorSpaceSettings": { - "$ref": "#/definitions/H265ColorSpaceSettings" - }, - "FilterSettings": { - "$ref": "#/definitions/H265FilterSettings" - }, - "FixedAfd": { - "type": "string" - }, - "FlickerAq": { - "type": "string" - }, - "FramerateDenominator": { - "type": "integer" - }, - "FramerateNumerator": { - "type": "integer" - }, - "GopClosedCadence": { - "type": "integer" - }, - "GopSize": { - "type": "number" - }, - "GopSizeUnits": { - "type": "string" - }, - "Level": { - "type": "string" - }, - "LookAheadRateControl": { - "type": "string" - }, - "MaxBitrate": { - "type": "integer" - }, - "MinIInterval": { - "type": "integer" - }, - "ParDenominator": { - "type": "integer" - }, - "ParNumerator": { - "type": "integer" - }, - "Profile": { - "type": "string" - }, - "QvbrQualityLevel": { - "type": "integer" - }, - "RateControlMode": { - "type": "string" - }, - "ScanType": { - "type": "string" - }, - "SceneChangeDetect": { - "type": "string" - }, - "Slices": { - "type": "integer" - }, - "Tier": { - "type": "string" - }, - "TimecodeBurninSettings": { - "$ref": "#/definitions/TimecodeBurninSettings" - }, - "TimecodeInsertion": { - "type": "string" - } - }, - "type": "object" - }, - "Hdr10Settings": { - "additionalProperties": false, - "properties": { - "MaxCll": { - "type": "integer" - }, - "MaxFall": { - "type": "integer" - } - }, - "type": "object" - }, - "HlsAkamaiSettings": { - "additionalProperties": false, - "properties": { - "ConnectionRetryInterval": { - "type": "integer" - }, - "FilecacheDuration": { - "type": "integer" - }, - "HttpTransferMode": { - "type": "string" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - }, - "Salt": { - "type": "string" - }, - "Token": { - "type": "string" - } - }, - "type": "object" - }, - "HlsBasicPutSettings": { - "additionalProperties": false, - "properties": { - "ConnectionRetryInterval": { - "type": "integer" - }, - "FilecacheDuration": { - "type": "integer" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - } - }, - "type": "object" - }, - "HlsCdnSettings": { - "additionalProperties": false, - "properties": { - "HlsAkamaiSettings": { - "$ref": "#/definitions/HlsAkamaiSettings" - }, - "HlsBasicPutSettings": { - "$ref": "#/definitions/HlsBasicPutSettings" - }, - "HlsMediaStoreSettings": { - "$ref": "#/definitions/HlsMediaStoreSettings" - }, - "HlsS3Settings": { - "$ref": "#/definitions/HlsS3Settings" - }, - "HlsWebdavSettings": { - "$ref": "#/definitions/HlsWebdavSettings" - } - }, - "type": "object" - }, - "HlsGroupSettings": { - "additionalProperties": false, - "properties": { - "AdMarkers": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "BaseUrlContent": { - "type": "string" - }, - "BaseUrlContent1": { - "type": "string" - }, - "BaseUrlManifest": { - "type": "string" - }, - "BaseUrlManifest1": { - "type": "string" - }, - "CaptionLanguageMappings": { - "items": { - "$ref": "#/definitions/CaptionLanguageMapping" - }, - "type": "array", - "uniqueItems": false - }, - "CaptionLanguageSetting": { - "type": "string" - }, - "ClientCache": { - "type": "string" - }, - "CodecSpecification": { - "type": "string" - }, - "ConstantIv": { - "type": "string" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "DirectoryStructure": { - "type": "string" - }, - "DiscontinuityTags": { - "type": "string" - }, - "EncryptionType": { - "type": "string" - }, - "HlsCdnSettings": { - "$ref": "#/definitions/HlsCdnSettings" - }, - "HlsId3SegmentTagging": { - "type": "string" - }, - "IFrameOnlyPlaylists": { - "type": "string" - }, - "IncompleteSegmentBehavior": { - "type": "string" - }, - "IndexNSegments": { - "type": "integer" - }, - "InputLossAction": { - "type": "string" - }, - "IvInManifest": { - "type": "string" - }, - "IvSource": { - "type": "string" - }, - "KeepSegments": { - "type": "integer" - }, - "KeyFormat": { - "type": "string" - }, - "KeyFormatVersions": { - "type": "string" - }, - "KeyProviderSettings": { - "$ref": "#/definitions/KeyProviderSettings" - }, - "ManifestCompression": { - "type": "string" - }, - "ManifestDurationFormat": { - "type": "string" - }, - "MinSegmentLength": { - "type": "integer" - }, - "Mode": { - "type": "string" - }, - "OutputSelection": { - "type": "string" - }, - "ProgramDateTime": { - "type": "string" - }, - "ProgramDateTimeClock": { - "type": "string" - }, - "ProgramDateTimePeriod": { - "type": "integer" - }, - "RedundantManifest": { - "type": "string" - }, - "SegmentLength": { - "type": "integer" - }, - "SegmentationMode": { - "type": "string" - }, - "SegmentsPerSubdirectory": { - "type": "integer" - }, - "StreamInfResolution": { - "type": "string" - }, - "TimedMetadataId3Frame": { - "type": "string" - }, - "TimedMetadataId3Period": { - "type": "integer" - }, - "TimestampDeltaMilliseconds": { - "type": "integer" - }, - "TsFileMode": { - "type": "string" - } - }, - "type": "object" - }, - "HlsInputSettings": { - "additionalProperties": false, - "properties": { - "Bandwidth": { - "type": "integer" - }, - "BufferSegments": { - "type": "integer" - }, - "Retries": { - "type": "integer" - }, - "RetryInterval": { - "type": "integer" - }, - "Scte35Source": { - "type": "string" - } - }, - "type": "object" - }, - "HlsMediaStoreSettings": { - "additionalProperties": false, - "properties": { - "ConnectionRetryInterval": { - "type": "integer" - }, - "FilecacheDuration": { - "type": "integer" - }, - "MediaStoreStorageClass": { - "type": "string" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - } - }, - "type": "object" - }, - "HlsOutputSettings": { - "additionalProperties": false, - "properties": { - "H265PackagingType": { - "type": "string" - }, - "HlsSettings": { - "$ref": "#/definitions/HlsSettings" - }, - "NameModifier": { - "type": "string" - }, - "SegmentModifier": { - "type": "string" - } - }, - "type": "object" - }, - "HlsS3Settings": { - "additionalProperties": false, - "properties": { - "CannedAcl": { - "type": "string" - } - }, - "type": "object" - }, - "HlsSettings": { - "additionalProperties": false, - "properties": { - "AudioOnlyHlsSettings": { - "$ref": "#/definitions/AudioOnlyHlsSettings" - }, - "Fmp4HlsSettings": { - "$ref": "#/definitions/Fmp4HlsSettings" - }, - "FrameCaptureHlsSettings": { - "$ref": "#/definitions/FrameCaptureHlsSettings" - }, - "StandardHlsSettings": { - "$ref": "#/definitions/StandardHlsSettings" - } - }, - "type": "object" - }, - "HlsWebdavSettings": { - "additionalProperties": false, - "properties": { - "ConnectionRetryInterval": { - "type": "integer" - }, - "FilecacheDuration": { - "type": "integer" - }, - "HttpTransferMode": { - "type": "string" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - } - }, - "type": "object" - }, - "HtmlMotionGraphicsSettings": { - "additionalProperties": false, - "type": "object" - }, - "InputAttachment": { - "additionalProperties": false, - "properties": { - "AutomaticInputFailoverSettings": { - "$ref": "#/definitions/AutomaticInputFailoverSettings" - }, - "InputAttachmentName": { - "type": "string" - }, - "InputId": { - "type": "string" - }, - "InputSettings": { - "$ref": "#/definitions/InputSettings" - } - }, - "type": "object" - }, - "InputChannelLevel": { - "additionalProperties": false, - "properties": { - "Gain": { - "type": "integer" - }, - "InputChannel": { - "type": "integer" - } - }, - "type": "object" - }, - "InputLocation": { - "additionalProperties": false, - "properties": { - "PasswordParam": { - "type": "string" - }, - "Uri": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, - "InputLossBehavior": { - "additionalProperties": false, - "properties": { - "BlackFrameMsec": { - "type": "integer" - }, - "InputLossImageColor": { - "type": "string" - }, - "InputLossImageSlate": { - "$ref": "#/definitions/InputLocation" - }, - "InputLossImageType": { - "type": "string" - }, - "RepeatFrameMsec": { - "type": "integer" - } - }, - "type": "object" - }, - "InputLossFailoverSettings": { - "additionalProperties": false, - "properties": { - "InputLossThresholdMsec": { - "type": "integer" - } - }, - "type": "object" - }, - "InputSettings": { - "additionalProperties": false, - "properties": { - "AudioSelectors": { - "items": { - "$ref": "#/definitions/AudioSelector" - }, - "type": "array", - "uniqueItems": false - }, - "CaptionSelectors": { - "items": { - "$ref": "#/definitions/CaptionSelector" - }, - "type": "array", - "uniqueItems": false - }, - "DeblockFilter": { - "type": "string" - }, - "DenoiseFilter": { - "type": "string" - }, - "FilterStrength": { - "type": "integer" - }, - "InputFilter": { - "type": "string" - }, - "NetworkInputSettings": { - "$ref": "#/definitions/NetworkInputSettings" - }, - "Scte35Pid": { - "type": "integer" - }, - "Smpte2038DataPreference": { - "type": "string" - }, - "SourceEndBehavior": { - "type": "string" - }, - "VideoSelector": { - "$ref": "#/definitions/VideoSelector" - } - }, - "type": "object" - }, - "InputSpecification": { - "additionalProperties": false, - "properties": { - "Codec": { - "type": "string" - }, - "MaximumBitrate": { - "type": "string" - }, - "Resolution": { - "type": "string" - } - }, - "type": "object" - }, - "KeyProviderSettings": { - "additionalProperties": false, - "properties": { - "StaticKeySettings": { - "$ref": "#/definitions/StaticKeySettings" - } - }, - "type": "object" - }, - "M2tsSettings": { - "additionalProperties": false, - "properties": { - "AbsentInputAudioBehavior": { - "type": "string" - }, - "Arib": { - "type": "string" - }, - "AribCaptionsPid": { - "type": "string" - }, - "AribCaptionsPidControl": { - "type": "string" - }, - "AudioBufferModel": { - "type": "string" - }, - "AudioFramesPerPes": { - "type": "integer" - }, - "AudioPids": { - "type": "string" - }, - "AudioStreamType": { - "type": "string" - }, - "Bitrate": { - "type": "integer" - }, - "BufferModel": { - "type": "string" - }, - "CcDescriptor": { - "type": "string" - }, - "DvbNitSettings": { - "$ref": "#/definitions/DvbNitSettings" - }, - "DvbSdtSettings": { - "$ref": "#/definitions/DvbSdtSettings" - }, - "DvbSubPids": { - "type": "string" - }, - "DvbTdtSettings": { - "$ref": "#/definitions/DvbTdtSettings" - }, - "DvbTeletextPid": { - "type": "string" - }, - "Ebif": { - "type": "string" - }, - "EbpAudioInterval": { - "type": "string" - }, - "EbpLookaheadMs": { - "type": "integer" - }, - "EbpPlacement": { - "type": "string" - }, - "EcmPid": { - "type": "string" - }, - "EsRateInPes": { - "type": "string" - }, - "EtvPlatformPid": { - "type": "string" - }, - "EtvSignalPid": { - "type": "string" - }, - "FragmentTime": { - "type": "number" - }, - "Klv": { - "type": "string" - }, - "KlvDataPids": { - "type": "string" - }, - "NielsenId3Behavior": { - "type": "string" - }, - "NullPacketBitrate": { - "type": "number" - }, - "PatInterval": { - "type": "integer" - }, - "PcrControl": { - "type": "string" - }, - "PcrPeriod": { - "type": "integer" - }, - "PcrPid": { - "type": "string" - }, - "PmtInterval": { - "type": "integer" - }, - "PmtPid": { - "type": "string" - }, - "ProgramNum": { - "type": "integer" - }, - "RateMode": { - "type": "string" - }, - "Scte27Pids": { - "type": "string" - }, - "Scte35Control": { - "type": "string" - }, - "Scte35Pid": { - "type": "string" - }, - "Scte35PrerollPullupMilliseconds": { - "type": "number" - }, - "SegmentationMarkers": { - "type": "string" - }, - "SegmentationStyle": { - "type": "string" - }, - "SegmentationTime": { - "type": "number" - }, - "TimedMetadataBehavior": { - "type": "string" - }, - "TimedMetadataPid": { - "type": "string" - }, - "TransportStreamId": { - "type": "integer" - }, - "VideoPid": { - "type": "string" - } - }, - "type": "object" - }, - "M3u8Settings": { - "additionalProperties": false, - "properties": { - "AudioFramesPerPes": { - "type": "integer" - }, - "AudioPids": { - "type": "string" - }, - "EcmPid": { - "type": "string" - }, - "KlvBehavior": { - "type": "string" - }, - "KlvDataPids": { - "type": "string" - }, - "NielsenId3Behavior": { - "type": "string" - }, - "PatInterval": { - "type": "integer" - }, - "PcrControl": { - "type": "string" - }, - "PcrPeriod": { - "type": "integer" - }, - "PcrPid": { - "type": "string" - }, - "PmtInterval": { - "type": "integer" - }, - "PmtPid": { - "type": "string" - }, - "ProgramNum": { - "type": "integer" - }, - "Scte35Behavior": { - "type": "string" - }, - "Scte35Pid": { - "type": "string" - }, - "TimedMetadataBehavior": { - "type": "string" - }, - "TimedMetadataPid": { - "type": "string" - }, - "TransportStreamId": { - "type": "integer" - }, - "VideoPid": { - "type": "string" - } - }, - "type": "object" - }, - "MaintenanceCreateSettings": { - "additionalProperties": false, - "properties": { - "MaintenanceDay": { - "type": "string" - }, - "MaintenanceStartTime": { - "type": "string" - } - }, - "type": "object" - }, - "MediaPackageGroupSettings": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - } - }, - "type": "object" - }, - "MediaPackageOutputDestinationSettings": { - "additionalProperties": false, - "properties": { - "ChannelId": { - "type": "string" - } - }, - "type": "object" - }, - "MediaPackageOutputSettings": { - "additionalProperties": false, - "type": "object" - }, - "MotionGraphicsConfiguration": { - "additionalProperties": false, - "properties": { - "MotionGraphicsInsertion": { - "type": "string" - }, - "MotionGraphicsSettings": { - "$ref": "#/definitions/MotionGraphicsSettings" - } - }, - "type": "object" - }, - "MotionGraphicsSettings": { - "additionalProperties": false, - "properties": { - "HtmlMotionGraphicsSettings": { - "$ref": "#/definitions/HtmlMotionGraphicsSettings" - } - }, - "type": "object" - }, - "Mp2Settings": { - "additionalProperties": false, - "properties": { - "Bitrate": { - "type": "number" - }, - "CodingMode": { - "type": "string" - }, - "SampleRate": { - "type": "number" - } - }, - "type": "object" - }, - "Mpeg2FilterSettings": { - "additionalProperties": false, - "properties": { - "TemporalFilterSettings": { - "$ref": "#/definitions/TemporalFilterSettings" - } - }, - "type": "object" - }, - "Mpeg2Settings": { - "additionalProperties": false, - "properties": { - "AdaptiveQuantization": { - "type": "string" - }, - "AfdSignaling": { - "type": "string" - }, - "ColorMetadata": { - "type": "string" - }, - "ColorSpace": { - "type": "string" - }, - "DisplayAspectRatio": { - "type": "string" - }, - "FilterSettings": { - "$ref": "#/definitions/Mpeg2FilterSettings" - }, - "FixedAfd": { - "type": "string" - }, - "FramerateDenominator": { - "type": "integer" - }, - "FramerateNumerator": { - "type": "integer" - }, - "GopClosedCadence": { - "type": "integer" - }, - "GopNumBFrames": { - "type": "integer" - }, - "GopSize": { - "type": "number" - }, - "GopSizeUnits": { - "type": "string" - }, - "ScanType": { - "type": "string" - }, - "SubgopLength": { - "type": "string" - }, - "TimecodeBurninSettings": { - "$ref": "#/definitions/TimecodeBurninSettings" - }, - "TimecodeInsertion": { - "type": "string" - } - }, - "type": "object" - }, - "MsSmoothGroupSettings": { - "additionalProperties": false, - "properties": { - "AcquisitionPointId": { - "type": "string" - }, - "AudioOnlyTimecodeControl": { - "type": "string" - }, - "CertificateMode": { - "type": "string" - }, - "ConnectionRetryInterval": { - "type": "integer" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "EventId": { - "type": "string" - }, - "EventIdMode": { - "type": "string" - }, - "EventStopBehavior": { - "type": "string" - }, - "FilecacheDuration": { - "type": "integer" - }, - "FragmentLength": { - "type": "integer" - }, - "InputLossAction": { - "type": "string" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - }, - "SegmentationMode": { - "type": "string" - }, - "SendDelayMs": { - "type": "integer" - }, - "SparseTrackType": { - "type": "string" - }, - "StreamManifestBehavior": { - "type": "string" - }, - "TimestampOffset": { - "type": "string" - }, - "TimestampOffsetMode": { - "type": "string" - } - }, - "type": "object" - }, - "MsSmoothOutputSettings": { - "additionalProperties": false, - "properties": { - "H265PackagingType": { - "type": "string" - }, - "NameModifier": { - "type": "string" - } - }, - "type": "object" - }, - "MultiplexGroupSettings": { - "additionalProperties": false, - "type": "object" - }, - "MultiplexOutputSettings": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - } - }, - "type": "object" - }, - "MultiplexProgramChannelDestinationSettings": { - "additionalProperties": false, - "properties": { - "MultiplexId": { - "type": "string" - }, - "ProgramName": { - "type": "string" - } - }, - "type": "object" - }, - "NetworkInputSettings": { - "additionalProperties": false, - "properties": { - "HlsInputSettings": { - "$ref": "#/definitions/HlsInputSettings" - }, - "ServerValidation": { - "type": "string" - } - }, - "type": "object" - }, - "NielsenCBET": { - "additionalProperties": false, - "properties": { - "CbetCheckDigitString": { - "type": "string" - }, - "CbetStepaside": { - "type": "string" - }, - "Csid": { - "type": "string" - } - }, - "type": "object" - }, - "NielsenConfiguration": { - "additionalProperties": false, - "properties": { - "DistributorId": { - "type": "string" - }, - "NielsenPcmToId3Tagging": { - "type": "string" - } - }, - "type": "object" - }, - "NielsenNaesIiNw": { - "additionalProperties": false, - "properties": { - "CheckDigitString": { - "type": "string" - }, - "Sid": { - "type": "number" - }, - "Timezone": { - "type": "string" - } - }, - "type": "object" - }, - "NielsenWatermarksSettings": { - "additionalProperties": false, - "properties": { - "NielsenCbetSettings": { - "$ref": "#/definitions/NielsenCBET" - }, - "NielsenDistributionType": { - "type": "string" - }, - "NielsenNaesIiNwSettings": { - "$ref": "#/definitions/NielsenNaesIiNw" - } - }, - "type": "object" - }, - "Output": { - "additionalProperties": false, - "properties": { - "AudioDescriptionNames": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "CaptionDescriptionNames": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "OutputName": { - "type": "string" - }, - "OutputSettings": { - "$ref": "#/definitions/OutputSettings" - }, - "VideoDescriptionName": { - "type": "string" - } - }, - "type": "object" - }, - "OutputDestination": { - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" - }, - "MediaPackageSettings": { - "items": { - "$ref": "#/definitions/MediaPackageOutputDestinationSettings" - }, - "type": "array", - "uniqueItems": false - }, - "MultiplexSettings": { - "$ref": "#/definitions/MultiplexProgramChannelDestinationSettings" - }, - "Settings": { - "items": { - "$ref": "#/definitions/OutputDestinationSettings" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "OutputDestinationSettings": { - "additionalProperties": false, - "properties": { - "PasswordParam": { - "type": "string" - }, - "StreamName": { - "type": "string" - }, - "Url": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, - "OutputGroup": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "OutputGroupSettings": { - "$ref": "#/definitions/OutputGroupSettings" - }, - "Outputs": { - "items": { - "$ref": "#/definitions/Output" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "OutputGroupSettings": { - "additionalProperties": false, - "properties": { - "ArchiveGroupSettings": { - "$ref": "#/definitions/ArchiveGroupSettings" - }, - "FrameCaptureGroupSettings": { - "$ref": "#/definitions/FrameCaptureGroupSettings" - }, - "HlsGroupSettings": { - "$ref": "#/definitions/HlsGroupSettings" - }, - "MediaPackageGroupSettings": { - "$ref": "#/definitions/MediaPackageGroupSettings" - }, - "MsSmoothGroupSettings": { - "$ref": "#/definitions/MsSmoothGroupSettings" - }, - "MultiplexGroupSettings": { - "$ref": "#/definitions/MultiplexGroupSettings" - }, - "RtmpGroupSettings": { - "$ref": "#/definitions/RtmpGroupSettings" - }, - "UdpGroupSettings": { - "$ref": "#/definitions/UdpGroupSettings" - } - }, - "type": "object" - }, - "OutputLocationRef": { - "additionalProperties": false, - "properties": { - "DestinationRefId": { - "type": "string" - } - }, - "type": "object" - }, - "OutputLockingSettings": { - "additionalProperties": false, - "properties": { - "EpochLockingSettings": { - "$ref": "#/definitions/EpochLockingSettings" - }, - "PipelineLockingSettings": { - "$ref": "#/definitions/PipelineLockingSettings" - } - }, - "type": "object" - }, - "OutputSettings": { - "additionalProperties": false, - "properties": { - "ArchiveOutputSettings": { - "$ref": "#/definitions/ArchiveOutputSettings" - }, - "FrameCaptureOutputSettings": { - "$ref": "#/definitions/FrameCaptureOutputSettings" - }, - "HlsOutputSettings": { - "$ref": "#/definitions/HlsOutputSettings" - }, - "MediaPackageOutputSettings": { - "$ref": "#/definitions/MediaPackageOutputSettings" - }, - "MsSmoothOutputSettings": { - "$ref": "#/definitions/MsSmoothOutputSettings" - }, - "MultiplexOutputSettings": { - "$ref": "#/definitions/MultiplexOutputSettings" - }, - "RtmpOutputSettings": { - "$ref": "#/definitions/RtmpOutputSettings" - }, - "UdpOutputSettings": { - "$ref": "#/definitions/UdpOutputSettings" - } - }, - "type": "object" - }, - "PassThroughSettings": { - "additionalProperties": false, - "type": "object" - }, - "PipelineLockingSettings": { - "additionalProperties": false, - "type": "object" - }, - "RawSettings": { - "additionalProperties": false, - "type": "object" - }, - "Rec601Settings": { - "additionalProperties": false, - "type": "object" - }, - "Rec709Settings": { - "additionalProperties": false, - "type": "object" - }, - "RemixSettings": { - "additionalProperties": false, - "properties": { - "ChannelMappings": { - "items": { - "$ref": "#/definitions/AudioChannelMapping" - }, - "type": "array", - "uniqueItems": false - }, - "ChannelsIn": { - "type": "integer" - }, - "ChannelsOut": { - "type": "integer" - } - }, - "type": "object" - }, - "RtmpCaptionInfoDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "RtmpGroupSettings": { - "additionalProperties": false, - "properties": { - "AdMarkers": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "AuthenticationScheme": { - "type": "string" - }, - "CacheFullBehavior": { - "type": "string" - }, - "CacheLength": { - "type": "integer" - }, - "CaptionData": { - "type": "string" - }, - "IncludeFillerNalUnits": { - "type": "string" - }, - "InputLossAction": { - "type": "string" - }, - "RestartDelay": { - "type": "integer" - } - }, - "type": "object" - }, - "RtmpOutputSettings": { - "additionalProperties": false, - "properties": { - "CertificateMode": { - "type": "string" - }, - "ConnectionRetryInterval": { - "type": "integer" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "NumRetries": { - "type": "integer" - } - }, - "type": "object" - }, - "Scte20PlusEmbeddedDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "Scte20SourceSettings": { - "additionalProperties": false, - "properties": { - "Convert608To708": { - "type": "string" - }, - "Source608ChannelNumber": { - "type": "integer" - } - }, - "type": "object" - }, - "Scte27DestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "Scte27SourceSettings": { - "additionalProperties": false, - "properties": { - "OcrLanguage": { - "type": "string" - }, - "Pid": { - "type": "integer" - } - }, - "type": "object" - }, - "Scte35SpliceInsert": { - "additionalProperties": false, - "properties": { - "AdAvailOffset": { - "type": "integer" - }, - "NoRegionalBlackoutFlag": { - "type": "string" - }, - "WebDeliveryAllowedFlag": { - "type": "string" - } - }, - "type": "object" - }, - "Scte35TimeSignalApos": { - "additionalProperties": false, - "properties": { - "AdAvailOffset": { - "type": "integer" - }, - "NoRegionalBlackoutFlag": { - "type": "string" - }, - "WebDeliveryAllowedFlag": { - "type": "string" - } - }, - "type": "object" - }, - "SmpteTtDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "StandardHlsSettings": { - "additionalProperties": false, - "properties": { - "AudioRenditionSets": { - "type": "string" - }, - "M3u8Settings": { - "$ref": "#/definitions/M3u8Settings" - } - }, - "type": "object" - }, - "StaticKeySettings": { - "additionalProperties": false, - "properties": { - "KeyProviderServer": { - "$ref": "#/definitions/InputLocation" - }, - "StaticKeyValue": { - "type": "string" - } - }, - "type": "object" - }, - "TeletextDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "TeletextSourceSettings": { - "additionalProperties": false, - "properties": { - "OutputRectangle": { - "$ref": "#/definitions/CaptionRectangle" - }, - "PageNumber": { - "type": "string" - } - }, - "type": "object" - }, - "TemporalFilterSettings": { - "additionalProperties": false, - "properties": { - "PostFilterSharpening": { - "type": "string" - }, - "Strength": { - "type": "string" - } - }, - "type": "object" - }, - "ThumbnailConfiguration": { - "additionalProperties": false, - "properties": { - "State": { - "type": "string" - } - }, - "type": "object" - }, - "TimecodeBurninSettings": { - "additionalProperties": false, - "properties": { - "FontSize": { - "type": "string" - }, - "Position": { - "type": "string" - }, - "Prefix": { - "type": "string" - } - }, - "type": "object" - }, - "TimecodeConfig": { - "additionalProperties": false, - "properties": { - "Source": { - "type": "string" - }, - "SyncThreshold": { - "type": "integer" - } - }, - "type": "object" - }, - "TtmlDestinationSettings": { - "additionalProperties": false, - "properties": { - "StyleControl": { - "type": "string" - } - }, - "type": "object" - }, - "UdpContainerSettings": { - "additionalProperties": false, - "properties": { - "M2tsSettings": { - "$ref": "#/definitions/M2tsSettings" - } - }, - "type": "object" - }, - "UdpGroupSettings": { - "additionalProperties": false, - "properties": { - "InputLossAction": { - "type": "string" - }, - "TimedMetadataId3Frame": { - "type": "string" - }, - "TimedMetadataId3Period": { - "type": "integer" - } - }, - "type": "object" - }, - "UdpOutputSettings": { - "additionalProperties": false, - "properties": { - "BufferMsec": { - "type": "integer" - }, - "ContainerSettings": { - "$ref": "#/definitions/UdpContainerSettings" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "FecOutputSettings": { - "$ref": "#/definitions/FecOutputSettings" - } - }, - "type": "object" - }, - "VideoBlackFailoverSettings": { - "additionalProperties": false, - "properties": { - "BlackDetectThreshold": { - "type": "number" - }, - "VideoBlackThresholdMsec": { - "type": "integer" - } - }, - "type": "object" - }, - "VideoCodecSettings": { - "additionalProperties": false, - "properties": { - "FrameCaptureSettings": { - "$ref": "#/definitions/FrameCaptureSettings" - }, - "H264Settings": { - "$ref": "#/definitions/H264Settings" - }, - "H265Settings": { - "$ref": "#/definitions/H265Settings" - }, - "Mpeg2Settings": { - "$ref": "#/definitions/Mpeg2Settings" - } - }, - "type": "object" - }, - "VideoDescription": { - "additionalProperties": false, - "properties": { - "CodecSettings": { - "$ref": "#/definitions/VideoCodecSettings" - }, - "Height": { - "type": "integer" - }, - "Name": { - "type": "string" - }, - "RespondToAfd": { - "type": "string" - }, - "ScalingBehavior": { - "type": "string" - }, - "Sharpness": { - "type": "integer" - }, - "Width": { - "type": "integer" - } - }, - "type": "object" - }, - "VideoSelector": { - "additionalProperties": false, - "properties": { - "ColorSpace": { - "type": "string" - }, - "ColorSpaceSettings": { - "$ref": "#/definitions/VideoSelectorColorSpaceSettings" - }, - "ColorSpaceUsage": { - "type": "string" - }, - "SelectorSettings": { - "$ref": "#/definitions/VideoSelectorSettings" - } - }, - "type": "object" - }, - "VideoSelectorColorSpaceSettings": { - "additionalProperties": false, - "properties": { - "Hdr10Settings": { - "$ref": "#/definitions/Hdr10Settings" - } - }, - "type": "object" - }, - "VideoSelectorPid": { - "additionalProperties": false, - "properties": { - "Pid": { - "type": "integer" - } - }, - "type": "object" - }, - "VideoSelectorProgramId": { - "additionalProperties": false, - "properties": { - "ProgramId": { - "type": "integer" - } - }, - "type": "object" - }, - "VideoSelectorSettings": { - "additionalProperties": false, - "properties": { - "VideoSelectorPid": { - "$ref": "#/definitions/VideoSelectorPid" - }, - "VideoSelectorProgramId": { - "$ref": "#/definitions/VideoSelectorProgramId" - } - }, - "type": "object" - }, - "VpcOutputSettings": { - "additionalProperties": false, - "properties": { - "PublicAddressAllocationIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "WavSettings": { - "additionalProperties": false, - "properties": { - "BitDepth": { - "type": "number" - }, - "CodingMode": { - "type": "string" - }, - "SampleRate": { - "type": "number" - } - }, - "type": "object" - }, - "WebvttDestinationSettings": { - "additionalProperties": false, - "properties": { - "StyleControl": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::MediaLive::Channel", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "type": "string" - }, - "CdiInputSpecification": { - "$ref": "#/definitions/CdiInputSpecification" - }, - "ChannelClass": { - "type": "string" - }, - "Destinations": { - "items": { - "$ref": "#/definitions/OutputDestination" - }, - "type": "array", - "uniqueItems": false - }, - "EncoderSettings": { - "$ref": "#/definitions/EncoderSettings" - }, - "Id": { - "type": "string" - }, - "InputAttachments": { - "items": { - "$ref": "#/definitions/InputAttachment" - }, - "type": "array", - "uniqueItems": false - }, - "InputSpecification": { - "$ref": "#/definitions/InputSpecification" - }, - "Inputs": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "LogLevel": { - "type": "string" - }, - "Maintenance": { - "$ref": "#/definitions/MaintenanceCreateSettings" - }, - "Name": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "Tags": { - "type": "object" - }, - "Vpc": { - "$ref": "#/definitions/VpcOutputSettings" - } - }, - "readOnlyProperties": [ - "/properties/Inputs", - "/properties/Id", - "/properties/Arn" - ], - "typeName": "AWS::MediaLive::Channel" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-route53resolver-resolverconfig.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-route53resolver-resolverconfig.json deleted file mode 100644 index 33f4996fbd..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-route53resolver-resolverconfig.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ResourceId", - "/properties/AutodefinedReverseFlag" - ], - "description": "Resource schema for AWS::Route53Resolver::ResolverConfig.", - "handlers": { - "create": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "delete": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "list": { - "permissions": [ - "route53resolver:ListResolverConfigs" - ] - }, - "read": { - "permissions": [ - "route53resolver:GetResolverConfig" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AutodefinedReverse": { - "description": "ResolverAutodefinedReverseStatus, possible values are ENABLING, ENABLED, DISABLING AND DISABLED.", - "enum": [ - "ENABLING", - "ENABLED", - "DISABLING", - "DISABLED" - ], - "type": "string" - }, - "AutodefinedReverseFlag": { - "description": "Represents the desired status of AutodefinedReverse. The only supported value on creation is DISABLE. Deletion of this resource will return AutodefinedReverse to its default value (ENABLED).", - "enum": [ - "DISABLE" - ], - "type": "string" - }, - "Id": { - "description": "Id", - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "OwnerId": { - "description": "AccountId", - "maxLength": 32, - "minLength": 12, - "type": "string" - }, - "ResourceId": { - "description": "ResourceId", - "maxLength": 64, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/OwnerId", - "/properties/Id", - "/properties/AutodefinedReverse" - ], - "required": [ - "ResourceId", - "AutodefinedReverseFlag" - ], - "taggable": false, - "typeName": "AWS::Route53Resolver::ResolverConfig" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-servicecatalogappregistry-application.json new file mode 100644 index 0000000000..b04a7d7289 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-servicecatalogappregistry-application.json @@ -0,0 +1,100 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Name" + ] + ], + "additionalProperties": false, + "definitions": { + "Tags": { + "additionalProperties": false, + "maxProperties": 50, + "patternProperties": { + "^[a-zA-Z+-=._:/]+$": { + "maxLength": 256, + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application", + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-application.html", + "handlers": { + "create": { + "permissions": [ + "servicecatalog:CreateApplication", + "servicecatalog:TagResource", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "servicecatalog:DeleteApplication" + ] + }, + "list": { + "permissions": [ + "servicecatalog:ListApplications" + ] + }, + "read": { + "permissions": [ + "servicecatalog:GetApplication" + ] + }, + "update": { + "permissions": [ + "servicecatalog:GetApplication", + "servicecatalog:ListTagsForResource", + "servicecatalog:TagResource", + "servicecatalog:UntagResource", + "servicecatalog:UpdateApplication", + "iam:CreateServiceLinkedRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", + "type": "string" + }, + "Description": { + "description": "The description of the application. ", + "maxLength": 1024, + "type": "string" + }, + "Id": { + "pattern": "[a-z0-9]{26}", + "type": "string" + }, + "Name": { + "description": "The name of the application. ", + "maxLength": 256, + "minLength": 1, + "pattern": "\\w+", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ServiceCatalogAppRegistry::Application" +} 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 8ff9437eba..a612d7baa3 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py @@ -8,6 +8,7 @@ "AWS::Pinpoint::App", "AWS::Connect::UserHierarchyGroup", "AWS::ApiGatewayV2::ApiMapping", + "AWS::CE::AnomalySubscription", "AWS::Shield::DRTAccess", "AWS::SSO::Assignment", "AWS::Glue::Partition", @@ -64,6 +65,7 @@ "AWS::Logs::ResourcePolicy", "AWS::Lex::BotVersion", "AWS::ServiceCatalog::LaunchNotificationConstraint", + "AWS::DMS::InstanceProfile", "AWS::OpenSearchServerless::VpcEndpoint", "AWS::QuickSight::DataSource", "AWS::IoT::CACertificate", @@ -481,6 +483,7 @@ "AWS::IoT::SoftwarePackageVersion", "AWS::EC2::NetworkInsightsAnalysis", "AWS::EC2::ClientVpnRoute", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::Omics::VariantStore", "AWS::AppSync::ApiKey", @@ -581,6 +584,7 @@ "AWS::ServiceCatalog::AcceptedPortfolioShare", "AWS::Route53Resolver::FirewallRuleGroupAssociation", "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", "AWS::EC2::Subnet", "AWS::CloudTrail::ResourcePolicy", "AWS::IoTTwinMaker::ComponentType", @@ -604,6 +608,7 @@ "AWS::SES::EmailIdentity", "AWS::IAM::UserToGroupAddition", "AWS::Events::Rule", + "AWS::CloudFront::KeyValueStore", "AWS::GameLift::GameSessionQueue", "AWS::DataBrew::Dataset", "AWS::EC2::VPNGatewayRoutePropagation", @@ -761,6 +766,7 @@ "AWS::CloudWatch::AnomalyDetector", "AWS::EC2::SubnetNetworkAclAssociation", "AWS::ServiceCatalog::ServiceAction", + "AWS::DMS::MigrationProject", "AWS::AppStream::Entitlement", "AWS::IAM::UserPolicy", "AWS::Connect::ViewVersion", @@ -984,6 +990,7 @@ "AWS::ApiGatewayV2::RouteResponse", "AWS::QuickSight::Topic", "AWS::CloudWatch::MetricStream", + "AWS::DMS::DataProvider", "AWS::Location::GeofenceCollection", "AWS::SSM::Parameter", "AWS::ApiGatewayV2::ApiGatewayManagedOverrides", @@ -993,6 +1000,7 @@ "AWS::SageMaker::MonitoringSchedule", "AWS::IAM::OIDCProvider", "AWS::LakeFormation::Tag", + "AWS::CE::AnomalyMonitor", "AWS::ServiceCatalogAppRegistry::ResourceAssociation", "AWS::EC2::VPNGateway", "AWS::CloudFormation::Stack", @@ -1097,6 +1105,7 @@ "aws-apigatewayv2-integration.json", "aws-connect-userhierarchygroup.json", "aws-apigatewayv2-apimapping.json", + "aws-ce-anomalysubscription.json", "aws-shield-drtaccess.json", "aws-sso-assignment.json", "aws-glue-partition.json", @@ -1111,7 +1120,7 @@ "aws-ecs-service.json", "aws-servicecatalog-portfolioprincipalassociation.json", "aws-ram-resourceshare.json", - "aws-memorydb-cluster.json", + "aws-dms-replicationconfig.json", "aws-dynamodb-table.json", "aws-amazonmq-configurationassociation.json", "aws-wafregional-ipset.json", @@ -1126,6 +1135,7 @@ "aws-config-configurationrecorder.json", "aws-msk-replicator.json", "aws-ec2-networkperformancemetricsubscription.json", + "aws-medialive-channel.json", "aws-greengrass-devicedefinition.json", "aws-cloudfront-continuousdeploymentpolicy.json", "aws-quicksight-analysis.json", @@ -1151,6 +1161,7 @@ "aws-logs-resourcepolicy.json", "aws-lex-botversion.json", "aws-servicecatalog-launchnotificationconstraint.json", + "aws-dms-instanceprofile.json", "aws-opensearchserverless-vpcendpoint.json", "aws-quicksight-datasource.json", "aws-iot-cacertificate.json", @@ -1158,6 +1169,7 @@ "aws-robomaker-simulationapplicationversion.json", "aws-ec2-networkinsightsaccessscopeanalysis.json", "aws-transfer-certificate.json", + "aws-connect-instance.json", "aws-apigateway-documentationpart.json", "aws-cloudwatch-compositealarm.json", "aws-route53resolver-firewalldomainlist.json", @@ -1252,7 +1264,6 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", - "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -1279,6 +1290,7 @@ "aws-customerprofiles-integration.json", "aws-workspaces-connectionalias.json", "aws-wafregional-sizeconstraintset.json", + "aws-eventschemas-discoverer.json", "aws-networkmanager-connectpeer.json", "aws-elasticache-usergroup.json", "aws-iot-thinggroup.json", @@ -1359,7 +1371,6 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", - "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-entityresolution-schemamapping.json", "aws-wafregional-xssmatchset.json", @@ -1372,6 +1383,7 @@ "aws-guardduty-member.json", "aws-groundstation-missionprofile.json", "aws-cloudformation-customresource.json", + "aws-fis-targetaccountconfiguration.json", "aws-refactorspaces-route.json", "aws-kinesisanalytics-applicationoutput.json", "aws-wafv2-rulegroup.json", @@ -1382,7 +1394,6 @@ "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", - "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-location-trackerconsumer.json", "aws-vpclattice-servicenetwork.json", @@ -1390,6 +1401,7 @@ "aws-cloudformation-stackset.json", "aws-ec2-route.json", "aws-kendra-index.json", + "aws-fis-experimenttemplate.json", "aws-codecommit-repository.json", "aws-cloudformation-hookversion.json", "aws-rolesanywhere-profile.json", @@ -1461,6 +1473,7 @@ "aws-location-routecalculator.json", "aws-servicecatalog-portfolioshare.json", "aws-apigateway-vpclink.json", + "aws-connect-integrationassociation.json", "aws-networkmanager-customergatewayassociation.json", "aws-iam-servercertificate.json", "aws-codestarconnections-connection.json", @@ -1643,7 +1656,6 @@ "aws-glue-trigger.json", "aws-globalaccelerator-listener.json", "aws-verifiedpermissions-policystore.json", - "aws-signer-signingprofile.json", "aws-kendraranking-executionplan.json", "aws-ec2-vpcpeeringconnection.json", "aws-sns-topicpolicy.json", @@ -1655,6 +1667,7 @@ "aws-servicecatalog-acceptedportfolioshare.json", "aws-route53resolver-firewallrulegroupassociation.json", "aws-route53resolver-resolverqueryloggingconfig.json", + "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-subnet.json", "aws-cloudtrail-resourcepolicy.json", "aws-iottwinmaker-componenttype.json", @@ -1678,6 +1691,7 @@ "aws-ses-emailidentity.json", "aws-iam-usertogroupaddition.json", "aws-events-rule.json", + "aws-cloudfront-keyvaluestore.json", "aws-gamelift-gamesessionqueue.json", "aws-databrew-dataset.json", "aws-ec2-vpngatewayroutepropagation.json", @@ -1715,7 +1729,6 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", - "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-customerprofiles-eventstream.json", @@ -1765,6 +1778,7 @@ "aws-ssmincidents-responseplan.json", "aws-lambda-layerversionpermission.json", "aws-secretsmanager-secret.json", + "aws-route53resolver-resolverconfig.json", "aws-elasticache-user.json", "aws-sagemaker-image.json", "aws-logs-subscriptionfilter.json", @@ -1832,6 +1846,7 @@ "aws-cloudwatch-anomalydetector.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-servicecatalog-serviceaction.json", + "aws-dms-migrationproject.json", "aws-appstream-entitlement.json", "aws-iam-userpolicy.json", "aws-connect-viewversion.json", @@ -1849,7 +1864,6 @@ "aws-lightsail-loadbalancertlscertificate.json", "aws-ec2-clientvpntargetnetworkassociation.json", "aws-mediapackagev2-originendpoint.json", - "aws-appsync-graphqlapi.json", "aws-gamelift-matchmakingruleset.json", "aws-ec2-egressonlyinternetgateway.json", "aws-athena-capacityreservation.json", @@ -1928,6 +1942,7 @@ "aws-stepfunctions-statemachine.json", "aws-rds-dbclusterparametergroup.json", "aws-waf-xssmatchset.json", + "aws-ec2-verifiedaccesstrustprovider.json", "aws-appmesh-virtualrouter.json", "aws-pinpoint-emailtemplate.json", "aws-medialive-multiplex.json", @@ -2025,6 +2040,7 @@ "aws-budgets-budget.json", "aws-networkmanager-corenetwork.json", "aws-batch-computeenvironment.json", + "aws-connect-instancestorageconfig.json", "aws-quicksight-vpcconnection.json", "aws-iot-thing.json", "aws-route53-healthcheck.json", @@ -2046,6 +2062,7 @@ "aws-apigatewayv2-routeresponse.json", "aws-quicksight-topic.json", "aws-cloudwatch-metricstream.json", + "aws-dms-dataprovider.json", "aws-location-geofencecollection.json", "aws-ssm-parameter.json", "aws-apigatewayv2-apigatewaymanagedoverrides.json", @@ -2055,6 +2072,7 @@ "aws-sagemaker-monitoringschedule.json", "aws-iam-oidcprovider.json", "aws-lakeformation-tag.json", + "aws-ce-anomalymonitor.json", "aws-servicecatalogappregistry-resourceassociation.json", "aws-ec2-vpngateway.json", "aws-cloudformation-stack.json", @@ -2143,7 +2161,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-redshift-eventsubscription.json", "aws-iotfleethub-application.json", - "aws-connect-user.json", "aws-ssmcontacts-contactchannel.json", "aws-memorydb-acl.json", "aws-cloudformation-waitconditionhandle.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-appsync-graphqlapi.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-appsync-graphqlapi.json new file mode 100644 index 0000000000..077c3fd5af --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-appsync-graphqlapi.json @@ -0,0 +1,222 @@ +{ + "additionalProperties": false, + "definitions": { + "AdditionalAuthenticationProvider": { + "additionalProperties": false, + "properties": { + "AuthenticationType": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "UserPoolConfig": { + "$ref": "#/definitions/CognitoUserPoolConfig" + } + }, + "required": [ + "AuthenticationType" + ], + "type": "object" + }, + "CognitoUserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "LambdaAuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsRoleArn": { + "type": "string" + }, + "ExcludeVerboseContent": { + "type": "boolean" + }, + "FieldLogLevel": { + "type": "string" + } + }, + "type": "object" + }, + "OpenIDConnectConfig": { + "additionalProperties": false, + "properties": { + "AuthTTL": { + "type": "number" + }, + "ClientId": { + "type": "string" + }, + "IatTTL": { + "type": "number" + }, + "Issuer": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "UserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "DefaultAction": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AppSync::GraphQLApi", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalAuthenticationProviders": { + "items": { + "$ref": "#/definitions/AdditionalAuthenticationProvider" + }, + "type": "array", + "uniqueItems": false + }, + "ApiId": { + "type": "string" + }, + "ApiType": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "AuthenticationType": { + "enum": [ + "API_KEY", + "AWS_IAM", + "AMAZON_COGNITO_USER_POOLS", + "OPENID_CONNECT", + "AWS_LAMBDA" + ], + "type": "string" + }, + "GraphQLDns": { + "type": "string" + }, + "GraphQLEndpointArn": { + "type": "string" + }, + "GraphQLUrl": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "LogConfig": { + "$ref": "#/definitions/LogConfig" + }, + "MergedApiExecutionRoleArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "OwnerContact": { + "type": "string" + }, + "RealtimeDns": { + "type": "string" + }, + "RealtimeUrl": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UserPoolConfig": { + "$ref": "#/definitions/UserPoolConfig" + }, + "Visibility": { + "type": "string" + }, + "XrayEnabled": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/ApiId", + "/properties/GraphQLEndpointArn", + "/properties/Id", + "/properties/GraphQLDns", + "/properties/GraphQLUrl", + "/properties/RealtimeDns", + "/properties/RealtimeUrl", + "/properties/Arn" + ], + "required": [ + "Name", + "AuthenticationType" + ], + "typeName": "AWS::AppSync::GraphQLApi" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-codedeploy-deploymentgroup.json new file mode 100644 index 0000000000..208990a115 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-codedeploy-deploymentgroup.json @@ -0,0 +1,523 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentGroupName", + "/properties/ApplicationName" + ], + "definitions": { + "Alarm": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AlarmConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/Alarm" + }, + "type": "array", + "uniqueItems": true + }, + "Enabled": { + "type": "boolean" + }, + "IgnorePollAlarmFailure": { + "type": "boolean" + } + }, + "type": "object" + }, + "AutoRollbackConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Events": { + "items": { + "enum": [ + "DEPLOYMENT_FAILURE", + "DEPLOYMENT_STOP_ON_ALARM", + "DEPLOYMENT_STOP_ON_REQUEST" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "BlueGreenDeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "DeploymentReadyOption": { + "$ref": "#/definitions/DeploymentReadyOption" + }, + "GreenFleetProvisioningOption": { + "$ref": "#/definitions/GreenFleetProvisioningOption" + }, + "TerminateBlueInstancesOnDeploymentSuccess": { + "$ref": "#/definitions/BlueInstanceTerminationOption" + } + }, + "type": "object" + }, + "BlueInstanceTerminationOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "TerminationWaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "Deployment": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "IgnoreApplicationStopFailures": { + "type": "boolean" + }, + "Revision": { + "$ref": "#/definitions/RevisionLocation" + } + }, + "required": [ + "Revision" + ], + "type": "object" + }, + "DeploymentReadyOption": { + "additionalProperties": false, + "properties": { + "ActionOnTimeout": { + "type": "string" + }, + "WaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentStyle": { + "additionalProperties": false, + "properties": { + "DeploymentOption": { + "enum": [ + "WITH_TRAFFIC_CONTROL", + "WITHOUT_TRAFFIC_CONTROL" + ], + "type": "string" + }, + "DeploymentType": { + "enum": [ + "IN_PLACE", + "BLUE_GREEN" + ], + "type": "string" + } + }, + "type": "object" + }, + "EC2TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "EC2TagSet": { + "additionalProperties": false, + "properties": { + "Ec2TagSetList": { + "items": { + "$ref": "#/definitions/EC2TagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EC2TagSetListObject": { + "additionalProperties": false, + "properties": { + "Ec2TagGroup": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ECSService": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + } + }, + "required": [ + "ServiceName", + "ClusterName" + ], + "type": "object" + }, + "ELBInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "GitHubLocation": { + "additionalProperties": false, + "properties": { + "CommitId": { + "type": "string" + }, + "Repository": { + "type": "string" + } + }, + "required": [ + "Repository", + "CommitId" + ], + "type": "object" + }, + "GreenFleetProvisioningOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "type": "object" + }, + "LoadBalancerInfo": { + "additionalProperties": false, + "properties": { + "ElbInfoList": { + "items": { + "$ref": "#/definitions/ELBInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupPairInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupPairInfo" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSet": { + "additionalProperties": false, + "properties": { + "OnPremisesTagSetList": { + "items": { + "$ref": "#/definitions/OnPremisesTagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSetListObject": { + "additionalProperties": false, + "properties": { + "OnPremisesTagGroup": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "RevisionLocation": { + "additionalProperties": false, + "properties": { + "GitHubLocation": { + "$ref": "#/definitions/GitHubLocation" + }, + "RevisionType": { + "type": "string" + }, + "S3Location": { + "$ref": "#/definitions/S3Location" + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "BundleType": { + "type": "string" + }, + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupPairInfo": { + "additionalProperties": false, + "properties": { + "ProdTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + }, + "TargetGroups": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TestTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + } + }, + "type": "object" + }, + "TrafficRoute": { + "additionalProperties": false, + "properties": { + "ListenerArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerEvents": { + "items": { + "enum": [ + "DeploymentStart", + "DeploymentSuccess", + "DeploymentFailure", + "DeploymentStop", + "DeploymentRollback", + "DeploymentReady", + "InstanceStart", + "InstanceSuccess", + "InstanceFailure", + "InstanceReady" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "TriggerName": { + "type": "string" + }, + "TriggerTargetArn": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AlarmConfiguration": { + "$ref": "#/definitions/AlarmConfiguration" + }, + "ApplicationName": { + "type": "string" + }, + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AutoRollbackConfiguration" + }, + "AutoScalingGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BlueGreenDeploymentConfiguration": { + "$ref": "#/definitions/BlueGreenDeploymentConfiguration" + }, + "Deployment": { + "$ref": "#/definitions/Deployment" + }, + "DeploymentConfigName": { + "type": "string" + }, + "DeploymentGroupName": { + "type": "string" + }, + "DeploymentStyle": { + "$ref": "#/definitions/DeploymentStyle" + }, + "ECSServices": { + "items": { + "$ref": "#/definitions/ECSService" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagFilters": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagSet": { + "$ref": "#/definitions/EC2TagSet" + }, + "Id": { + "type": "string" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/LoadBalancerInfo" + }, + "OnPremisesInstanceTagFilters": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "OnPremisesTagSet": { + "$ref": "#/definitions/OnPremisesTagSet" + }, + "OutdatedInstancesStrategy": { + "type": "string" + }, + "ServiceRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TerminationHookEnabled": { + "type": "boolean" + }, + "TriggerConfigurations": { + "items": { + "$ref": "#/definitions/TriggerConfig" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "ServiceRoleArn" + ], + "typeName": "AWS::CodeDeploy::DeploymentGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-instance.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-instance.json deleted file mode 100644 index 8e584a138a..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-instance.json +++ /dev/null @@ -1,238 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DirectoryId", - "/properties/InstanceAlias", - "/properties/IdentityManagementType" - ], - "definitions": { - "Attributes": { - "additionalProperties": false, - "properties": { - "AutoResolveBestVoices": { - "$ref": "#/definitions/AutoResolveBestVoices" - }, - "ContactLens": { - "$ref": "#/definitions/ContactLens" - }, - "ContactflowLogs": { - "$ref": "#/definitions/ContactflowLogs" - }, - "EarlyMedia": { - "$ref": "#/definitions/EarlyMedia" - }, - "InboundCalls": { - "$ref": "#/definitions/InboundCalls" - }, - "OutboundCalls": { - "$ref": "#/definitions/OutboundCalls" - }, - "UseCustomTTSVoices": { - "$ref": "#/definitions/UseCustomTTSVoices" - } - }, - "required": [ - "InboundCalls", - "OutboundCalls" - ], - "type": "object" - }, - "AutoResolveBestVoices": { - "description": "Boolean flag which enables AUTO_RESOLVE_BEST_VOICES on an instance.", - "type": "boolean" - }, - "ContactLens": { - "description": "Boolean flag which enables CONTACT_LENS on an instance.", - "type": "boolean" - }, - "ContactflowLogs": { - "description": "Boolean flag which enables CONTACTFLOW_LOGS on an instance.", - "type": "boolean" - }, - "EarlyMedia": { - "description": "Boolean flag which enables EARLY_MEDIA on an instance.", - "type": "boolean" - }, - "InboundCalls": { - "description": "Mandatory element which enables inbound calls on new instance.", - "type": "boolean" - }, - "OutboundCalls": { - "description": "Mandatory element which enables outbound calls on new instance.", - "type": "boolean" - }, - "Tag": { - "additionalProperties": false, - "description": "A key-value pair to associate with a resource.", - "properties": { - "Key": { - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "UseCustomTTSVoices": { - "description": "Boolean flag which enables USE_CUSTOM_TTS_VOICES on an instance.", - "type": "boolean" - } - }, - "description": "Resource Type definition for AWS::Connect::Instance", - "handlers": { - "create": { - "permissions": [ - "connect:CreateInstance", - "connect:DescribeInstance", - "connect:UpdateInstanceAttribute", - "connect:TagResource", - "ds:CheckAlias", - "ds:CreateAlias", - "ds:AuthorizeApplication", - "ds:UnauthorizeApplication", - "ds:CreateIdentityPoolDirectory", - "ds:CreateDirectory", - "ds:DescribeDirectories", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - "logs:CreateLogGroup" - ] - }, - "delete": { - "permissions": [ - "connect:DeleteInstance", - "connect:DescribeInstance", - "connect:UntagResource", - "ds:DeleteDirectory", - "ds:UnauthorizeApplication", - "ds:DescribeDirectories" - ] - }, - "list": { - "permissions": [ - "connect:ListInstances", - "connect:ListInstanceAttributes", - "ds:DescribeDirectories" - ] - }, - "read": { - "permissions": [ - "connect:DescribeInstance", - "connect:ListInstanceAttributes", - "ds:DescribeDirectories" - ] - }, - "update": { - "permissions": [ - "connect:ListInstanceAttributes", - "connect:UpdateInstanceAttribute", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - "connect:TagResource", - "connect:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "An instanceArn is automatically generated on creation based on instanceId.", - "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", - "type": "string" - }, - "Attributes": { - "$ref": "#/definitions/Attributes", - "description": "The attributes for the instance." - }, - "CreatedTime": { - "description": "Timestamp of instance creation logged as part of instance creation.", - "format": "date-time", - "type": "string" - }, - "DirectoryId": { - "description": "Existing directoryId user wants to map to the new Connect instance.", - "maxLength": 12, - "minLength": 12, - "pattern": "^d-[0-9a-f]{10}$", - "type": "string" - }, - "Id": { - "description": "An instanceId is automatically generated on creation and assigned as the unique identifier.", - "type": "string" - }, - "IdentityManagementType": { - "description": "Specifies the type of directory integration for new instance.", - "enum": [ - "SAML", - "CONNECT_MANAGED", - "EXISTING_DIRECTORY" - ], - "type": "string" - }, - "InstanceAlias": { - "description": "Alias of the new directory created as part of new instance creation.", - "maxLength": 62, - "minLength": 1, - "pattern": "^(?!d-)([\\da-zA-Z]+)([-]*[\\da-zA-Z])*$", - "type": "string" - }, - "InstanceStatus": { - "description": "Specifies the creation status of new instance.", - "enum": [ - "CREATION_IN_PROGRESS", - "CREATION_FAILED", - "ACTIVE" - ], - "type": "string" - }, - "ServiceRole": { - "description": "Service linked role created as part of instance creation.", - "type": "string" - }, - "Tags": { - "description": "An array of key-value pairs to apply to this resource.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn", - "/properties/ServiceRole", - "/properties/CreatedTime", - "/properties/InstanceStatus" - ], - "required": [ - "IdentityManagementType", - "Attributes" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Connect::Instance", - "writeOnlyProperties": [ - "/properties/DirectoryId" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-instancestorageconfig.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-instancestorageconfig.json deleted file mode 100644 index 5ed5a6196f..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-instancestorageconfig.json +++ /dev/null @@ -1,262 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/InstanceArn", - "/properties/ResourceType" - ], - "definitions": { - "AssociationId": { - "description": "An associationID is automatically generated when a storage config is associated with an instance", - "maxLength": 100, - "minLength": 1, - "pattern": "^[-a-z0-9]*$", - "type": "string" - }, - "BucketName": { - "description": "A name for the S3 Bucket", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "EncryptionConfig": { - "additionalProperties": false, - "properties": { - "EncryptionType": { - "$ref": "#/definitions/EncryptionType" - }, - "KeyId": { - "$ref": "#/definitions/KeyId" - } - }, - "required": [ - "EncryptionType", - "KeyId" - ], - "type": "object" - }, - "EncryptionType": { - "description": "Specifies default encryption using AWS KMS-Managed Keys", - "enum": [ - "KMS" - ], - "type": "string" - }, - "FirehoseDeliveryStreamArn": { - "description": "An ARN is a unique AWS resource identifier.", - "pattern": "^arn:aws[-a-z0-9]*:firehose:[-a-z0-9]*:[0-9]{12}:deliverystream/[-a-zA-Z0-9_.]*$", - "type": "string" - }, - "Hours": { - "description": "Number of hours", - "type": "number" - }, - "InstanceStorageResourceType": { - "description": "Specifies the type of storage resource available for the instance", - "enum": [ - "CHAT_TRANSCRIPTS", - "CALL_RECORDINGS", - "SCHEDULED_REPORTS", - "MEDIA_STREAMS", - "CONTACT_TRACE_RECORDS", - "AGENT_EVENTS" - ], - "type": "string" - }, - "KeyId": { - "description": "Specifies the encryption key id", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "KinesisFirehoseConfig": { - "additionalProperties": false, - "properties": { - "FirehoseArn": { - "$ref": "#/definitions/FirehoseDeliveryStreamArn" - } - }, - "required": [ - "FirehoseArn" - ], - "type": "object" - }, - "KinesisStreamArn": { - "description": "An ARN is a unique AWS resource identifier.", - "pattern": "^arn:aws[-a-z0-9]*:kinesis:[-a-z0-9]*:[0-9]{12}:stream/[-a-zA-Z0-9_.]*$", - "type": "string" - }, - "KinesisStreamConfig": { - "additionalProperties": false, - "properties": { - "StreamArn": { - "$ref": "#/definitions/KinesisStreamArn" - } - }, - "required": [ - "StreamArn" - ], - "type": "object" - }, - "KinesisVideoStreamConfig": { - "additionalProperties": false, - "properties": { - "EncryptionConfig": { - "$ref": "#/definitions/EncryptionConfig" - }, - "Prefix": { - "$ref": "#/definitions/Prefix" - }, - "RetentionPeriodHours": { - "$ref": "#/definitions/Hours" - } - }, - "required": [ - "Prefix", - "RetentionPeriodHours", - "EncryptionConfig" - ], - "type": "object" - }, - "Prefix": { - "description": "Prefixes are used to infer logical hierarchy", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "S3Config": { - "additionalProperties": false, - "properties": { - "BucketName": { - "$ref": "#/definitions/BucketName" - }, - "BucketPrefix": { - "$ref": "#/definitions/Prefix" - }, - "EncryptionConfig": { - "$ref": "#/definitions/EncryptionConfig" - } - }, - "required": [ - "BucketName", - "BucketPrefix" - ], - "type": "object" - }, - "StorageType": { - "description": "Specifies the storage type to be associated with the instance", - "enum": [ - "S3", - "KINESIS_VIDEO_STREAM", - "KINESIS_STREAM", - "KINESIS_FIREHOSE" - ], - "type": "string" - } - }, - "description": "Resource Type definition for AWS::Connect::InstanceStorageConfig", - "handlers": { - "create": { - "permissions": [ - "connect:AssociateInstanceStorageConfig", - "connect:DescribeInstance", - "ds:DescribeDirectories", - "s3:GetBucketAcl", - "s3:GetBucketLocation", - "iam:PutRolePolicy", - "kinesis:DescribeStream", - "kms:DescribeKey", - "kms:CreateGrant", - "firehose:DescribeDeliveryStream" - ] - }, - "delete": { - "permissions": [ - "connect:DisassociateInstanceStorageConfig", - "connect:DescribeInstance", - "s3:GetBucketAcl", - "s3:GetBucketLocation", - "kms:RetireGrant" - ] - }, - "list": { - "permissions": [ - "connect:DescribeInstance", - "connect:ListInstanceStorageConfigs", - "ds:DescribeDirectories" - ] - }, - "read": { - "permissions": [ - "connect:DescribeInstanceStorageConfig", - "connect:ListInstanceStorageConfigs", - "connect:DescribeInstance", - "ds:DescribeDirectories", - "s3:GetBucketAcl", - "s3:GetBucketLocation" - ] - }, - "update": { - "permissions": [ - "connect:UpdateInstanceStorageConfig", - "ds:DescribeDirectories", - "s3:GetBucketAcl", - "s3:GetBucketLocation", - "kinesis:DescribeStream", - "iam:PutRolePolicy", - "kms:DescribeKey", - "kms:CreateGrant", - "kms:RetireGrant", - "firehose:DescribeDeliveryStream" - ] - } - }, - "primaryIdentifier": [ - "/properties/InstanceArn", - "/properties/AssociationId", - "/properties/ResourceType" - ], - "properties": { - "AssociationId": { - "$ref": "#/definitions/AssociationId" - }, - "InstanceArn": { - "description": "Connect Instance ID with which the storage config will be associated", - "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", - "type": "string" - }, - "KinesisFirehoseConfig": { - "$ref": "#/definitions/KinesisFirehoseConfig" - }, - "KinesisStreamConfig": { - "$ref": "#/definitions/KinesisStreamConfig" - }, - "KinesisVideoStreamConfig": { - "$ref": "#/definitions/KinesisVideoStreamConfig" - }, - "ResourceType": { - "$ref": "#/definitions/InstanceStorageResourceType" - }, - "S3Config": { - "$ref": "#/definitions/S3Config" - }, - "StorageType": { - "$ref": "#/definitions/StorageType" - } - }, - "readOnlyProperties": [ - "/properties/AssociationId" - ], - "required": [ - "InstanceArn", - "ResourceType", - "StorageType" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::Connect::InstanceStorageConfig" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-integrationassociation.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-integrationassociation.json deleted file mode 100644 index aee475cb1b..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-integrationassociation.json +++ /dev/null @@ -1,147 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/InstanceId", - "/properties/IntegrationArn", - "/properties/IntegrationType" - ], - "definitions": { - "InstanceId": { - "description": "Amazon Connect instance identifier", - "maxLength": 100, - "minLength": 1, - "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", - "type": "string" - }, - "IntegrationArn": { - "description": "ARN of Integration being associated with the instance", - "maxLength": 140, - "minLength": 1, - "type": "string" - }, - "IntegrationAssociationId": { - "description": "Identifier of the association with Connect Instance", - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9])*$", - "type": "string" - }, - "IntegrationType": { - "description": "Specifies the integration type to be associated with the instance", - "enum": [ - "LEX_BOT", - "LAMBDA_FUNCTION", - "APPLICATION" - ], - "type": "string" - } - }, - "description": "Resource Type definition for AWS::Connect::IntegrationAssociation", - "handlers": { - "create": { - "permissions": [ - "connect:DescribeInstance", - "ds:DescribeDirectories", - "app-integrations:CreateEventIntegrationAssociation", - "mobiletargeting:GetApp", - "cases:GetDomain", - "wisdom:GetAssistant", - "wisdom:GetKnowledgeBase", - "wisdom:TagResource", - "voiceid:DescribeDomain", - "events:PutTargets", - "events:PutRule", - "connect:AssociateBot", - "connect:AssociateLambdaFunction", - "connect:CreateIntegrationAssociation", - "connect:ListBots", - "connect:ListLambdaFunctions", - "connect:ListIntegrationAssociations", - "lambda:addPermission", - "lex:GetBot", - "lex:DescribeBotAlias", - "lex:CreateResourcePolicy", - "lex:UpdateResourcePolicy", - "lex:CreateResourcePolicyStatement", - "lambda:AddPermission", - "app-integrations:GetApplication", - "iam:AttachRolePolicy", - "iam:CreateServiceLinkedRole", - "iam:GetRolePolicy", - "iam:PutRolePolicy" - ] - }, - "delete": { - "permissions": [ - "connect:DescribeInstance", - "ds:DescribeDirectories", - "app-integrations:DeleteEventIntegrationAssociation", - "events:ListTargetsByRule", - "events:RemoveTargets", - "events:DeleteRule", - "connect:DisassociateBot", - "connect:DisassociateLambdaFunction", - "connect:DeleteIntegrationAssociation", - "connect:ListBots", - "connect:ListLambdaFunctions", - "connect:ListIntegrationAssociations", - "lex:DeleteResourcePolicy", - "lex:DeleteResourcePolicyStatement", - "lambda:RemovePermission", - "iam:GetRolePolicy", - "iam:DeleteRolePolicy", - "iam:PutRolePolicy" - ] - }, - "list": { - "permissions": [ - "connect:ListBots", - "connect:ListLambdaFunctions", - "connect:ListIntegrationAssociations" - ] - }, - "read": { - "permissions": [ - "connect:ListBots", - "connect:ListLambdaFunctions", - "connect:ListIntegrationAssociations" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/InstanceId", - "/properties/IntegrationType", - "/properties/IntegrationArn" - ], - "properties": { - "InstanceId": { - "$ref": "#/definitions/InstanceId" - }, - "IntegrationArn": { - "$ref": "#/definitions/IntegrationArn" - }, - "IntegrationAssociationId": { - "$ref": "#/definitions/IntegrationAssociationId" - }, - "IntegrationType": { - "$ref": "#/definitions/IntegrationType" - } - }, - "readOnlyProperties": [ - "/properties/IntegrationAssociationId" - ], - "required": [ - "InstanceId", - "IntegrationType", - "IntegrationArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::Connect::IntegrationAssociation" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-user.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-user.json new file mode 100644 index 0000000000..b949608f4f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-user.json @@ -0,0 +1,241 @@ +{ + "additionalProperties": false, + "definitions": { + "AfterContactWorkTimeLimit": { + "description": "The After Call Work (ACW) timeout setting, in seconds.", + "minimum": 0, + "type": "integer" + }, + "AutoAccept": { + "description": "The Auto accept setting.", + "type": "boolean" + }, + "DeskPhoneNumber": { + "description": "The phone number for the user's desk phone.", + "type": "string" + }, + "Email": { + "description": "The email address. If you are using SAML for identity management and include this parameter, an error is returned.", + "type": "string" + }, + "FirstName": { + "description": "The first name. This is required if you are using Amazon Connect or SAML for identity management.", + "type": "string" + }, + "LastName": { + "description": "The last name. This is required if you are using Amazon Connect or SAML for identity management.", + "type": "string" + }, + "Mobile": { + "description": "The mobile phone number.", + "pattern": "^\\+[1-9]\\d{1,14}$", + "type": "string" + }, + "PhoneType": { + "description": "The phone type.", + "enum": [ + "SOFT_PHONE", + "DESK_PHONE" + ], + "type": "string" + }, + "SecondaryEmail": { + "description": "The secondary email address. If you provide a secondary email, the user receives email notifications -- other than password reset notifications -- to this email address instead of to their primary email address.", + "pattern": "(?=^.{0,265}$)[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,63}", + "type": "string" + }, + "SecurityProfileArn": { + "description": "The identifier of the security profile for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/security-profile/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is maximum of 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserIdentityInfo": { + "additionalProperties": false, + "description": "Contains information about the identity of a user.", + "properties": { + "Email": { + "$ref": "#/definitions/Email" + }, + "FirstName": { + "$ref": "#/definitions/FirstName" + }, + "LastName": { + "$ref": "#/definitions/LastName" + }, + "Mobile": { + "$ref": "#/definitions/Mobile" + }, + "SecondaryEmail": { + "$ref": "#/definitions/SecondaryEmail" + } + }, + "type": "object" + }, + "UserPhoneConfig": { + "additionalProperties": false, + "description": "Contains information about the phone configuration settings for a user.", + "properties": { + "AfterContactWorkTimeLimit": { + "$ref": "#/definitions/AfterContactWorkTimeLimit" + }, + "AutoAccept": { + "$ref": "#/definitions/AutoAccept" + }, + "DeskPhoneNumber": { + "$ref": "#/definitions/DeskPhoneNumber" + }, + "PhoneType": { + "$ref": "#/definitions/PhoneType" + } + }, + "required": [ + "PhoneType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Connect::User", + "handlers": { + "create": { + "permissions": [ + "connect:CreateUser", + "connect:TagResource", + "connect:AssociateUserProficiencies" + ] + }, + "delete": { + "permissions": [ + "connect:DeleteUser", + "connect:UntagResource" + ] + }, + "read": { + "permissions": [ + "connect:DescribeUser", + "connect:ListUserProficiencies" + ] + }, + "update": { + "permissions": [ + "connect:UpdateUserIdentityInfo", + "connect:UpdateUserPhoneConfig", + "connect:UpdateUserRoutingProfile", + "connect:UpdateUserSecurityProfiles", + "connect:UpdateUserHierarchy", + "connect:TagResource", + "connect:UntagResource", + "connect:AssociateUserProficiencies", + "connect:DisassociateUserProficiencies", + "connect:UpdateUserProficiencies" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserArn" + ], + "properties": { + "DirectoryUserId": { + "description": "The identifier of the user account in the directory used for identity management.", + "type": "string" + }, + "HierarchyGroupArn": { + "description": "The identifier of the hierarchy group for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group/[-a-zA-Z0-9]*$", + "type": "string" + }, + "IdentityInfo": { + "$ref": "#/definitions/UserIdentityInfo", + "description": "The information about the identity of the user." + }, + "InstanceArn": { + "description": "The identifier of the Amazon Connect instance.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Password": { + "description": "The password for the user account. A password is required if you are using Amazon Connect for identity management. Otherwise, it is an error to include a password.", + "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d\\S]{8,64}$", + "type": "string" + }, + "PhoneConfig": { + "$ref": "#/definitions/UserPhoneConfig", + "description": "The phone settings for the user." + }, + "RoutingProfileArn": { + "description": "The identifier of the routing profile for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/routing-profile/[-a-zA-Z0-9]*$", + "type": "string" + }, + "SecurityProfileArns": { + "description": "One or more security profile arns for the user", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SecurityProfileArn" + }, + "maxItems": 10, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "description": "One or more tags.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserArn": { + "description": "The Amazon Resource Name (ARN) for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Username": { + "description": "The user name for the account.", + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\_\\-\\.\\@]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/UserArn" + ], + "required": [ + "InstanceArn", + "PhoneConfig", + "RoutingProfileArn", + "SecurityProfileArns", + "Username" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "typeName": "AWS::Connect::User", + "writeOnlyProperties": [ + "/properties/Password" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-dms-replicationconfig.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-dms-replicationconfig.json deleted file mode 100644 index 15358362ce..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-dms-replicationconfig.json +++ /dev/null @@ -1,194 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicationConfigIdentifier" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ResourceIdentifier" - ], - "definitions": { - "ComputeConfig": { - "additionalProperties": false, - "description": "Configuration parameters for provisioning a AWS DMS Serverless replication", - "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, - "description": "

The key or keys of the key-value pairs for the resource tag or tags assigned to the\n resource.

", - "properties": { - "Key": { - "description": "

Tag key.

", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "

Tag value.

", - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "A replication configuration that you later provide to configure and start a AWS DMS Serverless replication", - "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:RemoveTagsToResource", - "dms:ListTagsForResource", - "iam:CreateServiceLinkedRole", - "iam:AttachRolePolicy", - "iam:PutRolePolicy", - "iam:UpdateRoleDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicationConfigArn" - ], - "properties": { - "ComputeConfig": { - "$ref": "#/definitions/ComputeConfig" - }, - "ReplicationConfigArn": { - "description": "The Amazon Resource Name (ARN) of the Replication Config", - "type": "string" - }, - "ReplicationConfigIdentifier": { - "description": "A unique identifier of replication configuration", - "type": "string" - }, - "ReplicationSettings": { - "description": "JSON settings for Servereless replications that are provisioned using this replication configuration", - "type": "object" - }, - "ReplicationType": { - "description": "The type of AWS DMS Serverless replication to provision using this replication configuration", - "enum": [ - "full-load", - "full-load-and-cdc", - "cdc" - ], - "type": "string" - }, - "ResourceIdentifier": { - "description": "A unique value or name that you get set for a given resource that can be used to construct an Amazon Resource Name (ARN) for that resource", - "type": "string" - }, - "SourceEndpointArn": { - "description": "The Amazon Resource Name (ARN) of the source endpoint for this AWS DMS Serverless replication configuration", - "type": "string" - }, - "SupplementalSettings": { - "description": "JSON settings for specifying supplemental data", - "type": "object" - }, - "TableMappings": { - "description": "JSON table mappings for AWS DMS Serverless replications that are provisioned using this replication configuration", - "type": "object" - }, - "Tags": { - "description": "

Contains a map of the key-value pairs for the resource tag or tags assigned to the dataset.

", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 1, - "type": "array" - }, - "TargetEndpointArn": { - "description": "The Amazon Resource Name (ARN) of the target endpoint for this AWS DMS Serverless replication configuration", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/ReplicationConfigArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-dms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::DMS::ReplicationConfig" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ec2-verifiedaccesstrustprovider.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ec2-verifiedaccesstrustprovider.json deleted file mode 100644 index dc3e6591e6..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ec2-verifiedaccesstrustprovider.json +++ /dev/null @@ -1,236 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PolicyReferenceName", - "/properties/DeviceOptions", - "/properties/DeviceTrustProviderType", - "/properties/TrustProviderType", - "/properties/UserTrustProviderType" - ], - "definitions": { - "DeviceOptions": { - "additionalProperties": false, - "description": "The options for device identity based trust providers.", - "properties": { - "PublicSigningKeyUrl": { - "description": "URL Verified Access will use to verify authenticity of the device tokens.", - "type": "string" - }, - "TenantId": { - "description": "The ID of the tenant application with the device-identity provider.", - "type": "string" - } - }, - "type": "object" - }, - "OidcOptions": { - "additionalProperties": false, - "description": "The OpenID Connect details for an oidc -type, user-identity based trust provider.", - "properties": { - "AuthorizationEndpoint": { - "description": "The OIDC authorization endpoint.", - "type": "string" - }, - "ClientId": { - "description": "The client identifier.", - "type": "string" - }, - "ClientSecret": { - "description": "The client secret.", - "type": "string" - }, - "Issuer": { - "description": "The OIDC issuer.", - "type": "string" - }, - "Scope": { - "description": "OpenID Connect (OIDC) scopes are used by an application during authentication to authorize access to details of a user. Each scope returns a specific set of user attributes.", - "type": "string" - }, - "TokenEndpoint": { - "description": "The OIDC token endpoint.", - "type": "string" - }, - "UserInfoEndpoint": { - "description": "The OIDC user info endpoint.", - "type": "string" - } - }, - "type": "object" - }, - "SseSpecification": { - "$ref": "#/definitions/SseSpecification", - "description": "The configuration options for customer provided KMS encryption." - }, - "Tag": { - "additionalProperties": false, - "description": "A key-value pair to associate with a resource.", - "properties": { - "Key": { - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "The AWS::EC2::VerifiedAccessTrustProvider type describes a verified access trust provider", - "handlers": { - "create": { - "permissions": [ - "ec2:CreateVerifiedAccessTrustProvider", - "ec2:DescribeVerifiedAccessTrustProviders", - "ec2:CreateTags", - "ec2:DescribeTags", - "sso:GetSharedSsoConfiguration", - "kms:DescribeKey", - "kms:RetireGrant", - "kms:CreateGrant", - "kms:GenerateDataKey", - "kms:Decrypt" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteVerifiedAccessTrustProvider", - "ec2:DeleteTags", - "ec2:DescribeVerifiedAccessTrustProviders", - "ec2:DescribeTags", - "kms:DescribeKey", - "kms:RetireGrant", - "kms:CreateGrant", - "kms:GenerateDataKey", - "kms:Decrypt" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeVerifiedAccessTrustProviders", - "ec2:DescribeTags", - "kms:DescribeKey", - "kms:GenerateDataKey", - "kms:Decrypt" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeVerifiedAccessTrustProviders", - "ec2:DescribeTags", - "kms:DescribeKey", - "kms:GenerateDataKey", - "kms:Decrypt" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyVerifiedAccessTrustProvider", - "ec2:DescribeVerifiedAccessTrustProviders", - "ec2:DescribeTags", - "ec2:DeleteTags", - "ec2:CreateTags", - "kms:DescribeKey", - "kms:RetireGrant", - "kms:CreateGrant", - "kms:GenerateDataKey", - "kms:Decrypt" - ] - } - }, - "primaryIdentifier": [ - "/properties/VerifiedAccessTrustProviderId" - ], - "properties": { - "CreationTime": { - "description": "The creation time.", - "type": "string" - }, - "Description": { - "description": "A description for the Amazon Web Services Verified Access trust provider.", - "type": "string" - }, - "DeviceOptions": { - "$ref": "#/definitions/DeviceOptions" - }, - "DeviceTrustProviderType": { - "description": "The type of device-based trust provider. Possible values: jamf|crowdstrike", - "type": "string" - }, - "LastUpdatedTime": { - "description": "The last updated time.", - "type": "string" - }, - "OidcOptions": { - "$ref": "#/definitions/OidcOptions" - }, - "PolicyReferenceName": { - "description": "The identifier to be used when working with policy rules.", - "type": "string" - }, - "SseSpecification": { - "additionalProperties": false, - "description": "The configuration options for customer provided KMS encryption.", - "properties": { - "CustomerManagedKeyEnabled": { - "description": "Whether to encrypt the policy with the provided key or disable encryption", - "type": "boolean" - }, - "KmsKeyArn": { - "description": "KMS Key Arn used to encrypt the group policy", - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "description": "An array of key-value pairs to apply to this resource.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "TrustProviderType": { - "description": "Type of trust provider. Possible values: user|device", - "type": "string" - }, - "UserTrustProviderType": { - "description": "The type of device-based trust provider. Possible values: oidc|iam-identity-center", - "type": "string" - }, - "VerifiedAccessTrustProviderId": { - "description": "The ID of the Amazon Web Services Verified Access trust provider.", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/VerifiedAccessTrustProviderId", - "/properties/CreationTime", - "/properties/LastUpdatedTime" - ], - "required": [ - "TrustProviderType", - "PolicyReferenceName" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2-verified-access.aws-ec2-verifiedaccesstrustprovider", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::VerifiedAccessTrustProvider" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-emr-cluster.json new file mode 100644 index 0000000000..7ce37fccb6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-emr-cluster.json @@ -0,0 +1,858 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Steps", + "/properties/EbsRootVolumeSize", + "/properties/SecurityConfiguration", + "/properties/ScaleDownBehavior", + "/properties/Configurations", + "/properties/ReleaseLabel", + "/properties/BootstrapActions", + "/properties/EbsRootVolumeIops", + "/properties/KerberosAttributes", + "/properties/ServiceRole", + "/properties/LogEncryptionKmsKeyId", + "/properties/Name", + "/properties/EbsRootVolumeThroughput", + "/properties/JobFlowRole", + "/properties/AdditionalInfo", + "/properties/LogUri", + "/properties/CustomAmiId", + "/properties/PlacementGroupConfigs", + "/properties/OSReleaseLabel", + "/properties/AutoScalingRole", + "/properties/Applications" + ], + "definitions": { + "Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ScalingRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/ScriptBootstrapActionConfig" + } + }, + "required": [ + "ScriptBootstrapAction", + "Name" + ], + "type": "object" + }, + "CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "EvaluationPeriods": { + "type": "integer" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "integer" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "ComparisonOperator", + "Period", + "Threshold" + ], + "type": "object" + }, + "ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "integer" + }, + "MaximumCoreCapacityUnits": { + "type": "integer" + }, + "MaximumOnDemandCapacityUnits": { + "type": "integer" + }, + "MinimumCapacityUnits": { + "type": "integer" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "UnitType", + "MaximumCapacityUnits", + "MinimumCapacityUnits" + ], + "type": "object" + }, + "Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "integer" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/EbsBlockDeviceConfig" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/KeyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/InstanceTypeConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchSpecifications": { + "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "integer" + }, + "TargetSpotCapacity": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/OnDemandProvisioningSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/SpotProvisioningSpecification" + } + }, + "type": "object" + }, + "InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceType": { + "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", + "type": "string" + }, + "WeightedCapacity": { + "type": "integer" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/ComputeLimits" + } + }, + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "PlacementGroupConfig": { + "additionalProperties": false, + "properties": { + "InstanceRole": { + "type": "string" + }, + "PlacementStrategy": { + "type": "string" + } + }, + "required": [ + "InstanceRole" + ], + "type": "object" + }, + "PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/ScalingTrigger" + } + }, + "required": [ + "Action", + "Trigger", + "Name" + ], + "type": "object" + }, + "ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BlockDurationMinutes": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "integer" + } + }, + "required": [ + "TimeoutDurationMinutes", + "TimeoutAction" + ], + "type": "object" + }, + "StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "integer" + }, + "SizeInGB": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EMR::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/Application" + }, + "type": "array", + "uniqueItems": true + }, + "AutoScalingRole": { + "type": "string" + }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AutoTerminationPolicy" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/BootstrapActionConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeIops": { + "type": "integer" + }, + "EbsRootVolumeSize": { + "type": "integer" + }, + "EbsRootVolumeThroughput": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Instances": { + "$ref": "#/definitions/JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/KerberosAttributes" + }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, + "LogUri": { + "type": "string" + }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/ManagedScalingPolicy" + }, + "MasterPublicDNS": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OSReleaseLabel": { + "type": "string" + }, + "PlacementGroupConfigs": { + "items": { + "$ref": "#/definitions/PlacementGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "StepConcurrencyLevel": { + "type": "integer" + }, + "Steps": { + "items": { + "$ref": "#/definitions/StepConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/MasterPublicDNS" + ], + "required": [ + "Instances", + "ServiceRole", + "JobFlowRole", + "Name" + ], + "typeName": "AWS::EMR::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-eventschemas-discoverer.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-eventschemas-discoverer.json deleted file mode 100644 index c01fbeae42..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-eventschemas-discoverer.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SourceArn" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EventSchemas::Discoverer", - "handlers": { - "create": { - "permissions": [ - "schemas:CreateDiscoverer", - "schemas:DescribeDiscoverer", - "schemas:TagResource", - "events:PutRule", - "events:PutTargets", - "events:EnableRule", - "events:ListTargetsByRule", - "iam:CreateServiceLinkedRole" - ] - }, - "delete": { - "permissions": [ - "schemas:DescribeDiscoverer", - "schemas:DeleteDiscoverer", - "events:DeleteRule", - "events:DisableRule", - "events:RemoveTargets" - ] - }, - "list": { - "permissions": [ - "schemas:ListDiscoverers" - ] - }, - "read": { - "permissions": [ - "schemas:DescribeDiscoverer" - ] - }, - "update": { - "permissions": [ - "schemas:DescribeDiscoverer", - "schemas:UpdateDiscoverer", - "schemas:TagResource", - "schemas:UntagResource", - "schemas:ListTagsForResource", - "events:PutTargets", - "events:PutRule" - ] - } - }, - "primaryIdentifier": [ - "/properties/DiscovererArn" - ], - "properties": { - "CrossAccount": { - "default": true, - "description": "Defines whether event schemas from other accounts are discovered. Default is True.", - "type": "boolean" - }, - "Description": { - "description": "A description for the discoverer.", - "type": "string" - }, - "DiscovererArn": { - "description": "The ARN of the discoverer.", - "type": "string" - }, - "DiscovererId": { - "description": "The Id of the discoverer.", - "type": "string" - }, - "SourceArn": { - "description": "The ARN of the event bus.", - "type": "string" - }, - "State": { - "description": "Defines the current state of the discoverer.", - "type": "string" - }, - "Tags": { - "description": "Tags associated with the resource.", - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/DiscovererArn", - "/properties/DiscovererId", - "/properties/State" - ], - "required": [ - "SourceArn" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EventSchemas::Discoverer" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-fis-experimenttemplate.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-fis-experimenttemplate.json deleted file mode 100644 index 44471088cb..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-fis-experimenttemplate.json +++ /dev/null @@ -1,399 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Tags", - "/properties/ExperimentOptions/AccountTargeting" - ], - "definitions": { - "ActionId": { - "description": "The ID of the action.", - "maxLength": 64, - "type": "string" - }, - "ExperimentTemplateAction": { - "additionalProperties": false, - "description": "Specifies an action for the experiment template.", - "properties": { - "ActionId": { - "$ref": "#/definitions/ActionId" - }, - "Description": { - "$ref": "#/definitions/ExperimentTemplateActionItemDescription" - }, - "Parameters": { - "additionalProperties": false, - "description": "The parameters for the action, if applicable.", - "patternProperties": { - ".{1,64}": { - "$ref": "#/definitions/ExperimentTemplateActionItemParameter" - } - }, - "type": "object" - }, - "StartAfter": { - "$ref": "#/definitions/ExperimentTemplateActionItemStartAfterList" - }, - "Targets": { - "additionalProperties": false, - "description": "One or more targets for the action.", - "patternProperties": { - ".{1,64}": { - "$ref": "#/definitions/ExperimentTemplateActionItemTarget" - } - }, - "type": "object" - } - }, - "required": [ - "ActionId" - ], - "type": "object" - }, - "ExperimentTemplateActionItemDescription": { - "description": "A description for the action.", - "maxLength": 512, - "type": "string" - }, - "ExperimentTemplateActionItemParameter": { - "maxLength": 1024, - "type": "string" - }, - "ExperimentTemplateActionItemStartAfter": { - "maxLength": 64, - "type": "string" - }, - "ExperimentTemplateActionItemStartAfterList": { - "description": "The names of the actions that must be completed before the current action starts.", - "items": { - "$ref": "#/definitions/ExperimentTemplateActionItemStartAfter" - }, - "type": "array" - }, - "ExperimentTemplateActionItemTarget": { - "maxLength": 64, - "type": "string" - }, - "ExperimentTemplateActionMap": { - "additionalProperties": false, - "description": "The actions for the experiment.", - "patternProperties": { - "[\\S]{1,64}": { - "$ref": "#/definitions/ExperimentTemplateAction" - } - }, - "type": "object" - }, - "ExperimentTemplateDescription": { - "description": "A description for the experiment template.", - "maxLength": 512, - "type": "string" - }, - "ExperimentTemplateExperimentOptions": { - "additionalProperties": false, - "properties": { - "AccountTargeting": { - "description": "The account targeting setting for the experiment template.", - "enum": [ - "multi-account", - "single-account" - ], - "type": "string" - }, - "EmptyTargetResolutionMode": { - "description": "The target resolution failure mode for the experiment template.", - "enum": [ - "fail", - "skip" - ], - "type": "string" - } - }, - "type": "object" - }, - "ExperimentTemplateId": { - "type": "string" - }, - "ExperimentTemplateLogConfiguration": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsConfiguration": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - } - }, - "required": [ - "LogGroupArn" - ], - "type": "object" - }, - "LogSchemaVersion": { - "minimum": 1, - "type": "integer" - }, - "S3Configuration": { - "additionalProperties": false, - "properties": { - "BucketName": { - "maxLength": 63, - "minLength": 3, - "type": "string" - }, - "Prefix": { - "maxLength": 1024, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "BucketName" - ], - "type": "object" - } - }, - "required": [ - "LogSchemaVersion" - ], - "type": "object" - }, - "ExperimentTemplateStopCondition": { - "additionalProperties": false, - "properties": { - "Source": { - "$ref": "#/definitions/StopConditionSource" - }, - "Value": { - "$ref": "#/definitions/StopConditionValue" - } - }, - "required": [ - "Source" - ], - "type": "object" - }, - "ExperimentTemplateStopConditionList": { - "description": "One or more stop conditions.", - "items": { - "$ref": "#/definitions/ExperimentTemplateStopCondition" - }, - "type": "array" - }, - "ExperimentTemplateTarget": { - "additionalProperties": false, - "description": "Specifies a target for an experiment.", - "properties": { - "Filters": { - "$ref": "#/definitions/ExperimentTemplateTargetFilterList" - }, - "Parameters": { - "additionalProperties": false, - "patternProperties": { - ".{1,64}": { - "maxLength": 1024, - "type": "string" - } - }, - "type": "object" - }, - "ResourceArns": { - "$ref": "#/definitions/ResourceArnList" - }, - "ResourceTags": { - "additionalProperties": false, - "patternProperties": { - ".{1,128}": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - }, - "ResourceType": { - "$ref": "#/definitions/ResourceType" - }, - "SelectionMode": { - "$ref": "#/definitions/ExperimentTemplateTargetSelectionMode" - } - }, - "required": [ - "ResourceType", - "SelectionMode" - ], - "type": "object" - }, - "ExperimentTemplateTargetFilter": { - "additionalProperties": false, - "description": "Describes a filter used for the target resource input in an experiment template.", - "properties": { - "Path": { - "$ref": "#/definitions/ExperimentTemplateTargetFilterPath" - }, - "Values": { - "$ref": "#/definitions/ExperimentTemplateTargetFilterValues" - } - }, - "required": [ - "Path", - "Values" - ], - "type": "object" - }, - "ExperimentTemplateTargetFilterList": { - "items": { - "$ref": "#/definitions/ExperimentTemplateTargetFilter" - }, - "type": "array" - }, - "ExperimentTemplateTargetFilterPath": { - "description": "The attribute path for the filter.", - "maxLength": 256, - "type": "string" - }, - "ExperimentTemplateTargetFilterValue": { - "maxLength": 128, - "type": "string" - }, - "ExperimentTemplateTargetFilterValues": { - "description": "The attribute values for the filter.", - "items": { - "$ref": "#/definitions/ExperimentTemplateTargetFilterValue" - }, - "type": "array" - }, - "ExperimentTemplateTargetMap": { - "additionalProperties": false, - "description": "The targets for the experiment.", - "patternProperties": { - ".{1,64}": { - "$ref": "#/definitions/ExperimentTemplateTarget" - } - }, - "type": "object" - }, - "ExperimentTemplateTargetSelectionMode": { - "description": "Scopes the identified resources to a specific number of the resources at random, or a percentage of the resources.", - "maxLength": 64, - "type": "string" - }, - "ResourceArn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - }, - "ResourceArnList": { - "description": "The Amazon Resource Names (ARNs) of the target resources.", - "items": { - "$ref": "#/definitions/ResourceArn" - }, - "type": "array" - }, - "ResourceType": { - "description": "The AWS resource type. The resource type must be supported for the specified action.", - "maxLength": 64, - "type": "string" - }, - "RoleArn": { - "description": "The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.", - "maxLength": 1224, - "type": "string" - }, - "StopConditionSource": { - "maxLength": 64, - "type": "string" - }, - "StopConditionValue": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - } - }, - "description": "Resource schema for AWS::FIS::ExperimentTemplate", - "handlers": { - "create": { - "permissions": [ - "fis:CreateExperimentTemplate", - "fis:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "fis:DeleteExperimentTemplate" - ] - }, - "list": { - "permissions": [ - "fis:ListExperimentTemplates", - "fis:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "fis:GetExperimentTemplate", - "fis:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "fis:UpdateExperimentTemplate", - "fis:TagResource", - "fis:UntagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Actions": { - "$ref": "#/definitions/ExperimentTemplateActionMap" - }, - "Description": { - "$ref": "#/definitions/ExperimentTemplateDescription" - }, - "ExperimentOptions": { - "$ref": "#/definitions/ExperimentTemplateExperimentOptions" - }, - "Id": { - "$ref": "#/definitions/ExperimentTemplateId" - }, - "LogConfiguration": { - "$ref": "#/definitions/ExperimentTemplateLogConfiguration" - }, - "RoleArn": { - "$ref": "#/definitions/RoleArn" - }, - "StopConditions": { - "$ref": "#/definitions/ExperimentTemplateStopConditionList" - }, - "Tags": { - "additionalProperties": false, - "patternProperties": { - ".{1,128}": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - }, - "Targets": { - "$ref": "#/definitions/ExperimentTemplateTargetMap" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Description", - "StopConditions", - "Targets", - "RoleArn", - "Tags" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fis.git", - "typeName": "AWS::FIS::ExperimentTemplate" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-fis-targetaccountconfiguration.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-fis-targetaccountconfiguration.json deleted file mode 100644 index 152a59c5bb..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-fis-targetaccountconfiguration.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ExperimentTemplateId", - "/properties/AccountId" - ], - "definitions": { - "TargetAccountConfigurationDescription": { - "description": "The description of the target account.", - "maxLength": 512, - "type": "string" - }, - "TargetAccountId": { - "description": "The AWS account ID of the target account.", - "maxLength": 512, - "type": "string" - }, - "TargetAccountRoleArn": { - "description": "The Amazon Resource Name (ARN) of an IAM role for the target account.", - "maxLength": 1224, - "type": "string" - }, - "TargetExperimentTemplateId": { - "description": "The ID of the experiment template.", - "type": "string" - } - }, - "description": "Resource schema for AWS::FIS::TargetAccountConfiguration", - "handlers": { - "create": { - "permissions": [ - "fis:CreateTargetAccountConfiguration" - ] - }, - "delete": { - "permissions": [ - "fis:DeleteTargetAccountConfiguration" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ExperimentTemplateId": { - "$ref": "resource-schema.json#/properties/ExperimentTemplateId" - } - }, - "required": [ - "ExperimentTemplateId" - ] - }, - "permissions": [ - "fis:ListTargetAccountConfigurations" - ] - }, - "read": { - "permissions": [ - "fis:GetTargetAccountConfiguration" - ] - }, - "update": { - "permissions": [ - "fis:UpdateTargetAccountConfiguration" - ] - } - }, - "primaryIdentifier": [ - "/properties/ExperimentTemplateId", - "/properties/AccountId" - ], - "properties": { - "AccountId": { - "$ref": "#/definitions/TargetAccountId" - }, - "Description": { - "$ref": "#/definitions/TargetAccountConfigurationDescription" - }, - "ExperimentTemplateId": { - "$ref": "#/definitions/TargetExperimentTemplateId" - }, - "RoleArn": { - "$ref": "#/definitions/TargetAccountRoleArn" - } - }, - "required": [ - "ExperimentTemplateId", - "AccountId", - "RoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fis.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::FIS::TargetAccountConfiguration" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-image.json new file mode 100644 index 0000000000..223d64e03e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-image.json @@ -0,0 +1,263 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ImageRecipeArn", + "/properties/ContainerRecipeArn", + "/properties/InfrastructureConfigurationArn", + "/properties/Workflows", + "/properties/DistributionConfigurationArn", + "/properties/ImageTestsConfiguration", + "/properties/ImageScanningConfiguration", + "/properties/EnhancedImageMetadataEnabled", + "/properties/Tags" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Contains settings for Image Builder image resource and container image scans.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "The image tests configuration used when creating this image.", + "properties": { + "ImageTestsEnabled": { + "description": "ImageTestsEnabled", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "TimeoutMinutes", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "WorkflowConfiguration": { + "additionalProperties": false, + "description": "The workflow configuration of the image", + "properties": { + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "enum": [ + "CONTINUE", + "ABORT" + ], + "type": "string" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string" + }, + "Parameters": { + "description": "The parameters associated with the workflow", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "type": "array" + }, + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowParameter": { + "additionalProperties": false, + "description": "A parameter associated with the workflow", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowParameterValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", + "type": "string" + } + }, + "description": "Resource schema for AWS::ImageBuilder::Image", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:GetImage", + "imagebuilder:CreateImage", + "imagebuilder:TagResource", + "inspector2:BatchGetAccountStatus" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "imagebuilder:GetImage", + "imagebuilder:DeleteImage", + "imagebuilder:UnTagResource", + "imagebuilder:CancelImageCreation" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListImages" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImage" + ] + } + }, + "oneOf": [ + { + "required": [ + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string" + }, + "ImageId": { + "description": "The AMI ID of the EC2 AMI in current region.", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration used when creating this image." + }, + "ImageUri": { + "description": "URI for containers created in current Region with default ECR image tag", + "type": "string" + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", + "type": "string" + }, + "Name": { + "description": "The name of the image.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the image.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Name", + "/properties/ImageId", + "/properties/ImageUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Image" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-imagepipeline.json new file mode 100644 index 0000000000..3cf9b2a4a9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-imagepipeline.json @@ -0,0 +1,277 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "Image tests configuration.", + "properties": { + "ImageTestsEnabled": { + "description": "Defines if tests should be executed when building this image.", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "The maximum time in minutes that tests are permitted to run.", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "description": "The schedule of the image pipeline.", + "properties": { + "PipelineExecutionStartCondition": { + "description": "The condition configures when the pipeline should trigger a new image build.", + "enum": [ + "EXPRESSION_MATCH_ONLY", + "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + ], + "type": "string" + }, + "ScheduleExpression": { + "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowConfiguration": { + "additionalProperties": false, + "description": "The workflow configuration of the image", + "properties": { + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "enum": [ + "CONTINUE", + "ABORT" + ], + "type": "string" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string" + }, + "Parameters": { + "description": "The parameters associated with the workflow", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "type": "array" + }, + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowParameter": { + "additionalProperties": false, + "description": "A parameter associated with the workflow", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowParameterValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", + "type": "string" + } + }, + "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:CreateImagePipeline", + "imagebuilder:GetWorkflow", + "inspector2:BatchGetAccountStatus" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:UnTagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:DeleteImagePipeline" + ] + }, + "list": { + "permissions": [ + "imagebuilder:ListImagePipelines" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImagePipeline" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "imagebuilder:GetImagePipeline", + "imagebuilder:UpdateImagePipeline", + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Name", + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "Name", + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image pipeline.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "Description": { + "description": "The description of the image pipeline.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration of the image pipeline." + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", + "type": "string" + }, + "Name": { + "description": "The name of the image pipeline.", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule", + "description": "The schedule of the image pipeline." + }, + "Status": { + "description": "The status of the image pipeline.", + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags of this image pipeline.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::ImagePipeline" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-workflow.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-workflow.json new file mode 100644 index 0000000000..5c25c2361b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-workflow.json @@ -0,0 +1,145 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Version", + "/properties/ChangeDescription", + "/properties/Description", + "/properties/Data", + "/properties/Uri", + "/properties/Type", + "/properties/KmsKeyId", + "/properties/Tags" + ], + "description": "Resource schema for AWS::ImageBuilder::Workflow", + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "kms:GenerateDataKey*", + "kms:Encrypt", + "kms:Decrypt", + "s3:GetObject", + "s3:HeadBucket", + "s3:GetBucketLocation", + "imagebuilder:TagResource", + "imagebuilder:GetWorkflow", + "imagebuilder:CreateWorkflow" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:GetWorkflow", + "imagebuilder:UnTagResource", + "imagebuilder:DeleteWorkflow" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListWorkflows" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Data" + ] + }, + { + "required": [ + "Uri" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the workflow.", + "type": "string" + }, + "ChangeDescription": { + "description": "The change description of the workflow.", + "type": "string" + }, + "Data": { + "description": "The data of the workflow.", + "maxLength": 16000, + "minLength": 1, + "type": "string" + }, + "Description": { + "description": "The description of the workflow.", + "type": "string" + }, + "KmsKeyId": { + "description": "The KMS key identifier used to encrypt the workflow.", + "type": "string" + }, + "Name": { + "description": "The name of the workflow.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the workflow.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "description": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.", + "enum": [ + "BUILD", + "TEST", + "DISTRIBUTION" + ], + "type": "string" + }, + "Uri": { + "description": "The uri of the workflow.", + "type": "string" + }, + "Version": { + "description": "The version of the workflow.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "Name", + "Type", + "Version" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Workflow", + "writeOnlyProperties": [ + "/properties/Data", + "/properties/Uri" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-medialive-channel.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-medialive-channel.json deleted file mode 100644 index d5a7dd8e34..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-medialive-channel.json +++ /dev/null @@ -1,3160 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Vpc" - ], - "definitions": { - "AacSettings": { - "additionalProperties": false, - "properties": { - "Bitrate": { - "type": "number" - }, - "CodingMode": { - "type": "string" - }, - "InputType": { - "type": "string" - }, - "Profile": { - "type": "string" - }, - "RateControlMode": { - "type": "string" - }, - "RawFormat": { - "type": "string" - }, - "SampleRate": { - "type": "number" - }, - "Spec": { - "type": "string" - }, - "VbrQuality": { - "type": "string" - } - }, - "type": "object" - }, - "Ac3Settings": { - "additionalProperties": false, - "properties": { - "AttenuationControl": { - "type": "string" - }, - "Bitrate": { - "type": "number" - }, - "BitstreamMode": { - "type": "string" - }, - "CodingMode": { - "type": "string" - }, - "Dialnorm": { - "type": "integer" - }, - "DrcProfile": { - "type": "string" - }, - "LfeFilter": { - "type": "string" - }, - "MetadataControl": { - "type": "string" - } - }, - "type": "object" - }, - "AncillarySourceSettings": { - "additionalProperties": false, - "properties": { - "SourceAncillaryChannelNumber": { - "type": "integer" - } - }, - "type": "object" - }, - "ArchiveCdnSettings": { - "additionalProperties": false, - "properties": { - "ArchiveS3Settings": { - "$ref": "#/definitions/ArchiveS3Settings" - } - }, - "type": "object" - }, - "ArchiveContainerSettings": { - "additionalProperties": false, - "properties": { - "M2tsSettings": { - "$ref": "#/definitions/M2tsSettings" - }, - "RawSettings": { - "$ref": "#/definitions/RawSettings" - } - }, - "type": "object" - }, - "ArchiveGroupSettings": { - "additionalProperties": false, - "properties": { - "ArchiveCdnSettings": { - "$ref": "#/definitions/ArchiveCdnSettings" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "RolloverInterval": { - "type": "integer" - } - }, - "type": "object" - }, - "ArchiveOutputSettings": { - "additionalProperties": false, - "properties": { - "ContainerSettings": { - "$ref": "#/definitions/ArchiveContainerSettings" - }, - "Extension": { - "type": "string" - }, - "NameModifier": { - "type": "string" - } - }, - "type": "object" - }, - "ArchiveS3Settings": { - "additionalProperties": false, - "properties": { - "CannedAcl": { - "type": "string" - } - }, - "type": "object" - }, - "AribDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "AribSourceSettings": { - "additionalProperties": false, - "type": "object" - }, - "AudioChannelMapping": { - "additionalProperties": false, - "properties": { - "InputChannelLevels": { - "items": { - "$ref": "#/definitions/InputChannelLevel" - }, - "type": "array", - "uniqueItems": false - }, - "OutputChannel": { - "type": "integer" - } - }, - "type": "object" - }, - "AudioCodecSettings": { - "additionalProperties": false, - "properties": { - "AacSettings": { - "$ref": "#/definitions/AacSettings" - }, - "Ac3Settings": { - "$ref": "#/definitions/Ac3Settings" - }, - "Eac3AtmosSettings": { - "$ref": "#/definitions/Eac3AtmosSettings" - }, - "Eac3Settings": { - "$ref": "#/definitions/Eac3Settings" - }, - "Mp2Settings": { - "$ref": "#/definitions/Mp2Settings" - }, - "PassThroughSettings": { - "$ref": "#/definitions/PassThroughSettings" - }, - "WavSettings": { - "$ref": "#/definitions/WavSettings" - } - }, - "type": "object" - }, - "AudioDescription": { - "additionalProperties": false, - "properties": { - "AudioNormalizationSettings": { - "$ref": "#/definitions/AudioNormalizationSettings" - }, - "AudioSelectorName": { - "type": "string" - }, - "AudioType": { - "type": "string" - }, - "AudioTypeControl": { - "type": "string" - }, - "AudioWatermarkingSettings": { - "$ref": "#/definitions/AudioWatermarkSettings" - }, - "CodecSettings": { - "$ref": "#/definitions/AudioCodecSettings" - }, - "LanguageCode": { - "type": "string" - }, - "LanguageCodeControl": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "RemixSettings": { - "$ref": "#/definitions/RemixSettings" - }, - "StreamName": { - "type": "string" - } - }, - "type": "object" - }, - "AudioDolbyEDecode": { - "additionalProperties": false, - "properties": { - "ProgramSelection": { - "type": "string" - } - }, - "type": "object" - }, - "AudioHlsRenditionSelection": { - "additionalProperties": false, - "properties": { - "GroupId": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AudioLanguageSelection": { - "additionalProperties": false, - "properties": { - "LanguageCode": { - "type": "string" - }, - "LanguageSelectionPolicy": { - "type": "string" - } - }, - "type": "object" - }, - "AudioNormalizationSettings": { - "additionalProperties": false, - "properties": { - "Algorithm": { - "type": "string" - }, - "AlgorithmControl": { - "type": "string" - }, - "TargetLkfs": { - "type": "number" - } - }, - "type": "object" - }, - "AudioOnlyHlsSettings": { - "additionalProperties": false, - "properties": { - "AudioGroupId": { - "type": "string" - }, - "AudioOnlyImage": { - "$ref": "#/definitions/InputLocation" - }, - "AudioTrackType": { - "type": "string" - }, - "SegmentType": { - "type": "string" - } - }, - "type": "object" - }, - "AudioPidSelection": { - "additionalProperties": false, - "properties": { - "Pid": { - "type": "integer" - } - }, - "type": "object" - }, - "AudioSelector": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "SelectorSettings": { - "$ref": "#/definitions/AudioSelectorSettings" - } - }, - "type": "object" - }, - "AudioSelectorSettings": { - "additionalProperties": false, - "properties": { - "AudioHlsRenditionSelection": { - "$ref": "#/definitions/AudioHlsRenditionSelection" - }, - "AudioLanguageSelection": { - "$ref": "#/definitions/AudioLanguageSelection" - }, - "AudioPidSelection": { - "$ref": "#/definitions/AudioPidSelection" - }, - "AudioTrackSelection": { - "$ref": "#/definitions/AudioTrackSelection" - } - }, - "type": "object" - }, - "AudioSilenceFailoverSettings": { - "additionalProperties": false, - "properties": { - "AudioSelectorName": { - "type": "string" - }, - "AudioSilenceThresholdMsec": { - "type": "integer" - } - }, - "type": "object" - }, - "AudioTrack": { - "additionalProperties": false, - "properties": { - "Track": { - "type": "integer" - } - }, - "type": "object" - }, - "AudioTrackSelection": { - "additionalProperties": false, - "properties": { - "DolbyEDecode": { - "$ref": "#/definitions/AudioDolbyEDecode" - }, - "Tracks": { - "items": { - "$ref": "#/definitions/AudioTrack" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "AudioWatermarkSettings": { - "additionalProperties": false, - "properties": { - "NielsenWatermarksSettings": { - "$ref": "#/definitions/NielsenWatermarksSettings" - } - }, - "type": "object" - }, - "AutomaticInputFailoverSettings": { - "additionalProperties": false, - "properties": { - "ErrorClearTimeMsec": { - "type": "integer" - }, - "FailoverConditions": { - "items": { - "$ref": "#/definitions/FailoverCondition" - }, - "type": "array", - "uniqueItems": false - }, - "InputPreference": { - "type": "string" - }, - "SecondaryInputId": { - "type": "string" - } - }, - "type": "object" - }, - "AvailBlanking": { - "additionalProperties": false, - "properties": { - "AvailBlankingImage": { - "$ref": "#/definitions/InputLocation" - }, - "State": { - "type": "string" - } - }, - "type": "object" - }, - "AvailConfiguration": { - "additionalProperties": false, - "properties": { - "AvailSettings": { - "$ref": "#/definitions/AvailSettings" - } - }, - "type": "object" - }, - "AvailSettings": { - "additionalProperties": false, - "properties": { - "Esam": { - "$ref": "#/definitions/Esam" - }, - "Scte35SpliceInsert": { - "$ref": "#/definitions/Scte35SpliceInsert" - }, - "Scte35TimeSignalApos": { - "$ref": "#/definitions/Scte35TimeSignalApos" - } - }, - "type": "object" - }, - "BlackoutSlate": { - "additionalProperties": false, - "properties": { - "BlackoutSlateImage": { - "$ref": "#/definitions/InputLocation" - }, - "NetworkEndBlackout": { - "type": "string" - }, - "NetworkEndBlackoutImage": { - "$ref": "#/definitions/InputLocation" - }, - "NetworkId": { - "type": "string" - }, - "State": { - "type": "string" - } - }, - "type": "object" - }, - "BurnInDestinationSettings": { - "additionalProperties": false, - "properties": { - "Alignment": { - "type": "string" - }, - "BackgroundColor": { - "type": "string" - }, - "BackgroundOpacity": { - "type": "integer" - }, - "Font": { - "$ref": "#/definitions/InputLocation" - }, - "FontColor": { - "type": "string" - }, - "FontOpacity": { - "type": "integer" - }, - "FontResolution": { - "type": "integer" - }, - "FontSize": { - "type": "string" - }, - "OutlineColor": { - "type": "string" - }, - "OutlineSize": { - "type": "integer" - }, - "ShadowColor": { - "type": "string" - }, - "ShadowOpacity": { - "type": "integer" - }, - "ShadowXOffset": { - "type": "integer" - }, - "ShadowYOffset": { - "type": "integer" - }, - "TeletextGridControl": { - "type": "string" - }, - "XPosition": { - "type": "integer" - }, - "YPosition": { - "type": "integer" - } - }, - "type": "object" - }, - "CaptionDescription": { - "additionalProperties": false, - "properties": { - "Accessibility": { - "type": "string" - }, - "CaptionSelectorName": { - "type": "string" - }, - "DestinationSettings": { - "$ref": "#/definitions/CaptionDestinationSettings" - }, - "LanguageCode": { - "type": "string" - }, - "LanguageDescription": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "CaptionDestinationSettings": { - "additionalProperties": false, - "properties": { - "AribDestinationSettings": { - "$ref": "#/definitions/AribDestinationSettings" - }, - "BurnInDestinationSettings": { - "$ref": "#/definitions/BurnInDestinationSettings" - }, - "DvbSubDestinationSettings": { - "$ref": "#/definitions/DvbSubDestinationSettings" - }, - "EbuTtDDestinationSettings": { - "$ref": "#/definitions/EbuTtDDestinationSettings" - }, - "EmbeddedDestinationSettings": { - "$ref": "#/definitions/EmbeddedDestinationSettings" - }, - "EmbeddedPlusScte20DestinationSettings": { - "$ref": "#/definitions/EmbeddedPlusScte20DestinationSettings" - }, - "RtmpCaptionInfoDestinationSettings": { - "$ref": "#/definitions/RtmpCaptionInfoDestinationSettings" - }, - "Scte20PlusEmbeddedDestinationSettings": { - "$ref": "#/definitions/Scte20PlusEmbeddedDestinationSettings" - }, - "Scte27DestinationSettings": { - "$ref": "#/definitions/Scte27DestinationSettings" - }, - "SmpteTtDestinationSettings": { - "$ref": "#/definitions/SmpteTtDestinationSettings" - }, - "TeletextDestinationSettings": { - "$ref": "#/definitions/TeletextDestinationSettings" - }, - "TtmlDestinationSettings": { - "$ref": "#/definitions/TtmlDestinationSettings" - }, - "WebvttDestinationSettings": { - "$ref": "#/definitions/WebvttDestinationSettings" - } - }, - "type": "object" - }, - "CaptionLanguageMapping": { - "additionalProperties": false, - "properties": { - "CaptionChannel": { - "type": "integer" - }, - "LanguageCode": { - "type": "string" - }, - "LanguageDescription": { - "type": "string" - } - }, - "type": "object" - }, - "CaptionRectangle": { - "additionalProperties": false, - "properties": { - "Height": { - "type": "number" - }, - "LeftOffset": { - "type": "number" - }, - "TopOffset": { - "type": "number" - }, - "Width": { - "type": "number" - } - }, - "type": "object" - }, - "CaptionSelector": { - "additionalProperties": false, - "properties": { - "LanguageCode": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "SelectorSettings": { - "$ref": "#/definitions/CaptionSelectorSettings" - } - }, - "type": "object" - }, - "CaptionSelectorSettings": { - "additionalProperties": false, - "properties": { - "AncillarySourceSettings": { - "$ref": "#/definitions/AncillarySourceSettings" - }, - "AribSourceSettings": { - "$ref": "#/definitions/AribSourceSettings" - }, - "DvbSubSourceSettings": { - "$ref": "#/definitions/DvbSubSourceSettings" - }, - "EmbeddedSourceSettings": { - "$ref": "#/definitions/EmbeddedSourceSettings" - }, - "Scte20SourceSettings": { - "$ref": "#/definitions/Scte20SourceSettings" - }, - "Scte27SourceSettings": { - "$ref": "#/definitions/Scte27SourceSettings" - }, - "TeletextSourceSettings": { - "$ref": "#/definitions/TeletextSourceSettings" - } - }, - "type": "object" - }, - "CdiInputSpecification": { - "additionalProperties": false, - "properties": { - "Resolution": { - "type": "string" - } - }, - "type": "object" - }, - "ColorSpacePassthroughSettings": { - "additionalProperties": false, - "type": "object" - }, - "DolbyVision81Settings": { - "additionalProperties": false, - "type": "object" - }, - "DvbNitSettings": { - "additionalProperties": false, - "properties": { - "NetworkId": { - "type": "integer" - }, - "NetworkName": { - "type": "string" - }, - "RepInterval": { - "type": "integer" - } - }, - "type": "object" - }, - "DvbSdtSettings": { - "additionalProperties": false, - "properties": { - "OutputSdt": { - "type": "string" - }, - "RepInterval": { - "type": "integer" - }, - "ServiceName": { - "type": "string" - }, - "ServiceProviderName": { - "type": "string" - } - }, - "type": "object" - }, - "DvbSubDestinationSettings": { - "additionalProperties": false, - "properties": { - "Alignment": { - "type": "string" - }, - "BackgroundColor": { - "type": "string" - }, - "BackgroundOpacity": { - "type": "integer" - }, - "Font": { - "$ref": "#/definitions/InputLocation" - }, - "FontColor": { - "type": "string" - }, - "FontOpacity": { - "type": "integer" - }, - "FontResolution": { - "type": "integer" - }, - "FontSize": { - "type": "string" - }, - "OutlineColor": { - "type": "string" - }, - "OutlineSize": { - "type": "integer" - }, - "ShadowColor": { - "type": "string" - }, - "ShadowOpacity": { - "type": "integer" - }, - "ShadowXOffset": { - "type": "integer" - }, - "ShadowYOffset": { - "type": "integer" - }, - "TeletextGridControl": { - "type": "string" - }, - "XPosition": { - "type": "integer" - }, - "YPosition": { - "type": "integer" - } - }, - "type": "object" - }, - "DvbSubSourceSettings": { - "additionalProperties": false, - "properties": { - "OcrLanguage": { - "type": "string" - }, - "Pid": { - "type": "integer" - } - }, - "type": "object" - }, - "DvbTdtSettings": { - "additionalProperties": false, - "properties": { - "RepInterval": { - "type": "integer" - } - }, - "type": "object" - }, - "Eac3AtmosSettings": { - "additionalProperties": false, - "properties": { - "Bitrate": { - "type": "number" - }, - "CodingMode": { - "type": "string" - }, - "Dialnorm": { - "type": "integer" - }, - "DrcLine": { - "type": "string" - }, - "DrcRf": { - "type": "string" - }, - "HeightTrim": { - "type": "number" - }, - "SurroundTrim": { - "type": "number" - } - }, - "type": "object" - }, - "Eac3Settings": { - "additionalProperties": false, - "properties": { - "AttenuationControl": { - "type": "string" - }, - "Bitrate": { - "type": "number" - }, - "BitstreamMode": { - "type": "string" - }, - "CodingMode": { - "type": "string" - }, - "DcFilter": { - "type": "string" - }, - "Dialnorm": { - "type": "integer" - }, - "DrcLine": { - "type": "string" - }, - "DrcRf": { - "type": "string" - }, - "LfeControl": { - "type": "string" - }, - "LfeFilter": { - "type": "string" - }, - "LoRoCenterMixLevel": { - "type": "number" - }, - "LoRoSurroundMixLevel": { - "type": "number" - }, - "LtRtCenterMixLevel": { - "type": "number" - }, - "LtRtSurroundMixLevel": { - "type": "number" - }, - "MetadataControl": { - "type": "string" - }, - "PassthroughControl": { - "type": "string" - }, - "PhaseControl": { - "type": "string" - }, - "StereoDownmix": { - "type": "string" - }, - "SurroundExMode": { - "type": "string" - }, - "SurroundMode": { - "type": "string" - } - }, - "type": "object" - }, - "EbuTtDDestinationSettings": { - "additionalProperties": false, - "properties": { - "CopyrightHolder": { - "type": "string" - }, - "FillLineGap": { - "type": "string" - }, - "FontFamily": { - "type": "string" - }, - "StyleControl": { - "type": "string" - } - }, - "type": "object" - }, - "EmbeddedDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "EmbeddedPlusScte20DestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "EmbeddedSourceSettings": { - "additionalProperties": false, - "properties": { - "Convert608To708": { - "type": "string" - }, - "Scte20Detection": { - "type": "string" - }, - "Source608ChannelNumber": { - "type": "integer" - }, - "Source608TrackNumber": { - "type": "integer" - } - }, - "type": "object" - }, - "EncoderSettings": { - "additionalProperties": false, - "properties": { - "AudioDescriptions": { - "items": { - "$ref": "#/definitions/AudioDescription" - }, - "type": "array", - "uniqueItems": false - }, - "AvailBlanking": { - "$ref": "#/definitions/AvailBlanking" - }, - "AvailConfiguration": { - "$ref": "#/definitions/AvailConfiguration" - }, - "BlackoutSlate": { - "$ref": "#/definitions/BlackoutSlate" - }, - "CaptionDescriptions": { - "items": { - "$ref": "#/definitions/CaptionDescription" - }, - "type": "array", - "uniqueItems": false - }, - "FeatureActivations": { - "$ref": "#/definitions/FeatureActivations" - }, - "GlobalConfiguration": { - "$ref": "#/definitions/GlobalConfiguration" - }, - "MotionGraphicsConfiguration": { - "$ref": "#/definitions/MotionGraphicsConfiguration" - }, - "NielsenConfiguration": { - "$ref": "#/definitions/NielsenConfiguration" - }, - "OutputGroups": { - "items": { - "$ref": "#/definitions/OutputGroup" - }, - "type": "array", - "uniqueItems": false - }, - "ThumbnailConfiguration": { - "$ref": "#/definitions/ThumbnailConfiguration" - }, - "TimecodeConfig": { - "$ref": "#/definitions/TimecodeConfig" - }, - "VideoDescriptions": { - "items": { - "$ref": "#/definitions/VideoDescription" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "EpochLockingSettings": { - "additionalProperties": false, - "properties": { - "CustomEpoch": { - "type": "string" - }, - "JamSyncTime": { - "type": "string" - } - }, - "type": "object" - }, - "Esam": { - "additionalProperties": false, - "properties": { - "AcquisitionPointId": { - "type": "string" - }, - "AdAvailOffset": { - "type": "integer" - }, - "PasswordParam": { - "type": "string" - }, - "PoisEndpoint": { - "type": "string" - }, - "Username": { - "type": "string" - }, - "ZoneIdentity": { - "type": "string" - } - }, - "type": "object" - }, - "FailoverCondition": { - "additionalProperties": false, - "properties": { - "FailoverConditionSettings": { - "$ref": "#/definitions/FailoverConditionSettings" - } - }, - "type": "object" - }, - "FailoverConditionSettings": { - "additionalProperties": false, - "properties": { - "AudioSilenceSettings": { - "$ref": "#/definitions/AudioSilenceFailoverSettings" - }, - "InputLossSettings": { - "$ref": "#/definitions/InputLossFailoverSettings" - }, - "VideoBlackSettings": { - "$ref": "#/definitions/VideoBlackFailoverSettings" - } - }, - "type": "object" - }, - "FeatureActivations": { - "additionalProperties": false, - "properties": { - "InputPrepareScheduleActions": { - "type": "string" - }, - "OutputStaticImageOverlayScheduleActions": { - "type": "string" - } - }, - "type": "object" - }, - "FecOutputSettings": { - "additionalProperties": false, - "properties": { - "ColumnDepth": { - "type": "integer" - }, - "IncludeFec": { - "type": "string" - }, - "RowLength": { - "type": "integer" - } - }, - "type": "object" - }, - "Fmp4HlsSettings": { - "additionalProperties": false, - "properties": { - "AudioRenditionSets": { - "type": "string" - }, - "NielsenId3Behavior": { - "type": "string" - }, - "TimedMetadataBehavior": { - "type": "string" - } - }, - "type": "object" - }, - "FrameCaptureCdnSettings": { - "additionalProperties": false, - "properties": { - "FrameCaptureS3Settings": { - "$ref": "#/definitions/FrameCaptureS3Settings" - } - }, - "type": "object" - }, - "FrameCaptureGroupSettings": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "FrameCaptureCdnSettings": { - "$ref": "#/definitions/FrameCaptureCdnSettings" - } - }, - "type": "object" - }, - "FrameCaptureHlsSettings": { - "additionalProperties": false, - "type": "object" - }, - "FrameCaptureOutputSettings": { - "additionalProperties": false, - "properties": { - "NameModifier": { - "type": "string" - } - }, - "type": "object" - }, - "FrameCaptureS3Settings": { - "additionalProperties": false, - "properties": { - "CannedAcl": { - "type": "string" - } - }, - "type": "object" - }, - "FrameCaptureSettings": { - "additionalProperties": false, - "properties": { - "CaptureInterval": { - "type": "integer" - }, - "CaptureIntervalUnits": { - "type": "string" - }, - "TimecodeBurninSettings": { - "$ref": "#/definitions/TimecodeBurninSettings" - } - }, - "type": "object" - }, - "GlobalConfiguration": { - "additionalProperties": false, - "properties": { - "InitialAudioGain": { - "type": "integer" - }, - "InputEndAction": { - "type": "string" - }, - "InputLossBehavior": { - "$ref": "#/definitions/InputLossBehavior" - }, - "OutputLockingMode": { - "type": "string" - }, - "OutputLockingSettings": { - "$ref": "#/definitions/OutputLockingSettings" - }, - "OutputTimingSource": { - "type": "string" - }, - "SupportLowFramerateInputs": { - "type": "string" - } - }, - "type": "object" - }, - "H264ColorSpaceSettings": { - "additionalProperties": false, - "properties": { - "ColorSpacePassthroughSettings": { - "$ref": "#/definitions/ColorSpacePassthroughSettings" - }, - "Rec601Settings": { - "$ref": "#/definitions/Rec601Settings" - }, - "Rec709Settings": { - "$ref": "#/definitions/Rec709Settings" - } - }, - "type": "object" - }, - "H264FilterSettings": { - "additionalProperties": false, - "properties": { - "TemporalFilterSettings": { - "$ref": "#/definitions/TemporalFilterSettings" - } - }, - "type": "object" - }, - "H264Settings": { - "additionalProperties": false, - "properties": { - "AdaptiveQuantization": { - "type": "string" - }, - "AfdSignaling": { - "type": "string" - }, - "Bitrate": { - "type": "integer" - }, - "BufFillPct": { - "type": "integer" - }, - "BufSize": { - "type": "integer" - }, - "ColorMetadata": { - "type": "string" - }, - "ColorSpaceSettings": { - "$ref": "#/definitions/H264ColorSpaceSettings" - }, - "EntropyEncoding": { - "type": "string" - }, - "FilterSettings": { - "$ref": "#/definitions/H264FilterSettings" - }, - "FixedAfd": { - "type": "string" - }, - "FlickerAq": { - "type": "string" - }, - "ForceFieldPictures": { - "type": "string" - }, - "FramerateControl": { - "type": "string" - }, - "FramerateDenominator": { - "type": "integer" - }, - "FramerateNumerator": { - "type": "integer" - }, - "GopBReference": { - "type": "string" - }, - "GopClosedCadence": { - "type": "integer" - }, - "GopNumBFrames": { - "type": "integer" - }, - "GopSize": { - "type": "number" - }, - "GopSizeUnits": { - "type": "string" - }, - "Level": { - "type": "string" - }, - "LookAheadRateControl": { - "type": "string" - }, - "MaxBitrate": { - "type": "integer" - }, - "MinIInterval": { - "type": "integer" - }, - "NumRefFrames": { - "type": "integer" - }, - "ParControl": { - "type": "string" - }, - "ParDenominator": { - "type": "integer" - }, - "ParNumerator": { - "type": "integer" - }, - "Profile": { - "type": "string" - }, - "QualityLevel": { - "type": "string" - }, - "QvbrQualityLevel": { - "type": "integer" - }, - "RateControlMode": { - "type": "string" - }, - "ScanType": { - "type": "string" - }, - "SceneChangeDetect": { - "type": "string" - }, - "Slices": { - "type": "integer" - }, - "Softness": { - "type": "integer" - }, - "SpatialAq": { - "type": "string" - }, - "SubgopLength": { - "type": "string" - }, - "Syntax": { - "type": "string" - }, - "TemporalAq": { - "type": "string" - }, - "TimecodeBurninSettings": { - "$ref": "#/definitions/TimecodeBurninSettings" - }, - "TimecodeInsertion": { - "type": "string" - } - }, - "type": "object" - }, - "H265ColorSpaceSettings": { - "additionalProperties": false, - "properties": { - "ColorSpacePassthroughSettings": { - "$ref": "#/definitions/ColorSpacePassthroughSettings" - }, - "DolbyVision81Settings": { - "$ref": "#/definitions/DolbyVision81Settings" - }, - "Hdr10Settings": { - "$ref": "#/definitions/Hdr10Settings" - }, - "Rec601Settings": { - "$ref": "#/definitions/Rec601Settings" - }, - "Rec709Settings": { - "$ref": "#/definitions/Rec709Settings" - } - }, - "type": "object" - }, - "H265FilterSettings": { - "additionalProperties": false, - "properties": { - "TemporalFilterSettings": { - "$ref": "#/definitions/TemporalFilterSettings" - } - }, - "type": "object" - }, - "H265Settings": { - "additionalProperties": false, - "properties": { - "AdaptiveQuantization": { - "type": "string" - }, - "AfdSignaling": { - "type": "string" - }, - "AlternativeTransferFunction": { - "type": "string" - }, - "Bitrate": { - "type": "integer" - }, - "BufSize": { - "type": "integer" - }, - "ColorMetadata": { - "type": "string" - }, - "ColorSpaceSettings": { - "$ref": "#/definitions/H265ColorSpaceSettings" - }, - "FilterSettings": { - "$ref": "#/definitions/H265FilterSettings" - }, - "FixedAfd": { - "type": "string" - }, - "FlickerAq": { - "type": "string" - }, - "FramerateDenominator": { - "type": "integer" - }, - "FramerateNumerator": { - "type": "integer" - }, - "GopClosedCadence": { - "type": "integer" - }, - "GopSize": { - "type": "number" - }, - "GopSizeUnits": { - "type": "string" - }, - "Level": { - "type": "string" - }, - "LookAheadRateControl": { - "type": "string" - }, - "MaxBitrate": { - "type": "integer" - }, - "MinIInterval": { - "type": "integer" - }, - "ParDenominator": { - "type": "integer" - }, - "ParNumerator": { - "type": "integer" - }, - "Profile": { - "type": "string" - }, - "QvbrQualityLevel": { - "type": "integer" - }, - "RateControlMode": { - "type": "string" - }, - "ScanType": { - "type": "string" - }, - "SceneChangeDetect": { - "type": "string" - }, - "Slices": { - "type": "integer" - }, - "Tier": { - "type": "string" - }, - "TimecodeBurninSettings": { - "$ref": "#/definitions/TimecodeBurninSettings" - }, - "TimecodeInsertion": { - "type": "string" - } - }, - "type": "object" - }, - "Hdr10Settings": { - "additionalProperties": false, - "properties": { - "MaxCll": { - "type": "integer" - }, - "MaxFall": { - "type": "integer" - } - }, - "type": "object" - }, - "HlsAkamaiSettings": { - "additionalProperties": false, - "properties": { - "ConnectionRetryInterval": { - "type": "integer" - }, - "FilecacheDuration": { - "type": "integer" - }, - "HttpTransferMode": { - "type": "string" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - }, - "Salt": { - "type": "string" - }, - "Token": { - "type": "string" - } - }, - "type": "object" - }, - "HlsBasicPutSettings": { - "additionalProperties": false, - "properties": { - "ConnectionRetryInterval": { - "type": "integer" - }, - "FilecacheDuration": { - "type": "integer" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - } - }, - "type": "object" - }, - "HlsCdnSettings": { - "additionalProperties": false, - "properties": { - "HlsAkamaiSettings": { - "$ref": "#/definitions/HlsAkamaiSettings" - }, - "HlsBasicPutSettings": { - "$ref": "#/definitions/HlsBasicPutSettings" - }, - "HlsMediaStoreSettings": { - "$ref": "#/definitions/HlsMediaStoreSettings" - }, - "HlsS3Settings": { - "$ref": "#/definitions/HlsS3Settings" - }, - "HlsWebdavSettings": { - "$ref": "#/definitions/HlsWebdavSettings" - } - }, - "type": "object" - }, - "HlsGroupSettings": { - "additionalProperties": false, - "properties": { - "AdMarkers": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "BaseUrlContent": { - "type": "string" - }, - "BaseUrlContent1": { - "type": "string" - }, - "BaseUrlManifest": { - "type": "string" - }, - "BaseUrlManifest1": { - "type": "string" - }, - "CaptionLanguageMappings": { - "items": { - "$ref": "#/definitions/CaptionLanguageMapping" - }, - "type": "array", - "uniqueItems": false - }, - "CaptionLanguageSetting": { - "type": "string" - }, - "ClientCache": { - "type": "string" - }, - "CodecSpecification": { - "type": "string" - }, - "ConstantIv": { - "type": "string" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "DirectoryStructure": { - "type": "string" - }, - "DiscontinuityTags": { - "type": "string" - }, - "EncryptionType": { - "type": "string" - }, - "HlsCdnSettings": { - "$ref": "#/definitions/HlsCdnSettings" - }, - "HlsId3SegmentTagging": { - "type": "string" - }, - "IFrameOnlyPlaylists": { - "type": "string" - }, - "IncompleteSegmentBehavior": { - "type": "string" - }, - "IndexNSegments": { - "type": "integer" - }, - "InputLossAction": { - "type": "string" - }, - "IvInManifest": { - "type": "string" - }, - "IvSource": { - "type": "string" - }, - "KeepSegments": { - "type": "integer" - }, - "KeyFormat": { - "type": "string" - }, - "KeyFormatVersions": { - "type": "string" - }, - "KeyProviderSettings": { - "$ref": "#/definitions/KeyProviderSettings" - }, - "ManifestCompression": { - "type": "string" - }, - "ManifestDurationFormat": { - "type": "string" - }, - "MinSegmentLength": { - "type": "integer" - }, - "Mode": { - "type": "string" - }, - "OutputSelection": { - "type": "string" - }, - "ProgramDateTime": { - "type": "string" - }, - "ProgramDateTimeClock": { - "type": "string" - }, - "ProgramDateTimePeriod": { - "type": "integer" - }, - "RedundantManifest": { - "type": "string" - }, - "SegmentLength": { - "type": "integer" - }, - "SegmentationMode": { - "type": "string" - }, - "SegmentsPerSubdirectory": { - "type": "integer" - }, - "StreamInfResolution": { - "type": "string" - }, - "TimedMetadataId3Frame": { - "type": "string" - }, - "TimedMetadataId3Period": { - "type": "integer" - }, - "TimestampDeltaMilliseconds": { - "type": "integer" - }, - "TsFileMode": { - "type": "string" - } - }, - "type": "object" - }, - "HlsInputSettings": { - "additionalProperties": false, - "properties": { - "Bandwidth": { - "type": "integer" - }, - "BufferSegments": { - "type": "integer" - }, - "Retries": { - "type": "integer" - }, - "RetryInterval": { - "type": "integer" - }, - "Scte35Source": { - "type": "string" - } - }, - "type": "object" - }, - "HlsMediaStoreSettings": { - "additionalProperties": false, - "properties": { - "ConnectionRetryInterval": { - "type": "integer" - }, - "FilecacheDuration": { - "type": "integer" - }, - "MediaStoreStorageClass": { - "type": "string" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - } - }, - "type": "object" - }, - "HlsOutputSettings": { - "additionalProperties": false, - "properties": { - "H265PackagingType": { - "type": "string" - }, - "HlsSettings": { - "$ref": "#/definitions/HlsSettings" - }, - "NameModifier": { - "type": "string" - }, - "SegmentModifier": { - "type": "string" - } - }, - "type": "object" - }, - "HlsS3Settings": { - "additionalProperties": false, - "properties": { - "CannedAcl": { - "type": "string" - } - }, - "type": "object" - }, - "HlsSettings": { - "additionalProperties": false, - "properties": { - "AudioOnlyHlsSettings": { - "$ref": "#/definitions/AudioOnlyHlsSettings" - }, - "Fmp4HlsSettings": { - "$ref": "#/definitions/Fmp4HlsSettings" - }, - "FrameCaptureHlsSettings": { - "$ref": "#/definitions/FrameCaptureHlsSettings" - }, - "StandardHlsSettings": { - "$ref": "#/definitions/StandardHlsSettings" - } - }, - "type": "object" - }, - "HlsWebdavSettings": { - "additionalProperties": false, - "properties": { - "ConnectionRetryInterval": { - "type": "integer" - }, - "FilecacheDuration": { - "type": "integer" - }, - "HttpTransferMode": { - "type": "string" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - } - }, - "type": "object" - }, - "HtmlMotionGraphicsSettings": { - "additionalProperties": false, - "type": "object" - }, - "InputAttachment": { - "additionalProperties": false, - "properties": { - "AutomaticInputFailoverSettings": { - "$ref": "#/definitions/AutomaticInputFailoverSettings" - }, - "InputAttachmentName": { - "type": "string" - }, - "InputId": { - "type": "string" - }, - "InputSettings": { - "$ref": "#/definitions/InputSettings" - } - }, - "type": "object" - }, - "InputChannelLevel": { - "additionalProperties": false, - "properties": { - "Gain": { - "type": "integer" - }, - "InputChannel": { - "type": "integer" - } - }, - "type": "object" - }, - "InputLocation": { - "additionalProperties": false, - "properties": { - "PasswordParam": { - "type": "string" - }, - "Uri": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, - "InputLossBehavior": { - "additionalProperties": false, - "properties": { - "BlackFrameMsec": { - "type": "integer" - }, - "InputLossImageColor": { - "type": "string" - }, - "InputLossImageSlate": { - "$ref": "#/definitions/InputLocation" - }, - "InputLossImageType": { - "type": "string" - }, - "RepeatFrameMsec": { - "type": "integer" - } - }, - "type": "object" - }, - "InputLossFailoverSettings": { - "additionalProperties": false, - "properties": { - "InputLossThresholdMsec": { - "type": "integer" - } - }, - "type": "object" - }, - "InputSettings": { - "additionalProperties": false, - "properties": { - "AudioSelectors": { - "items": { - "$ref": "#/definitions/AudioSelector" - }, - "type": "array", - "uniqueItems": false - }, - "CaptionSelectors": { - "items": { - "$ref": "#/definitions/CaptionSelector" - }, - "type": "array", - "uniqueItems": false - }, - "DeblockFilter": { - "type": "string" - }, - "DenoiseFilter": { - "type": "string" - }, - "FilterStrength": { - "type": "integer" - }, - "InputFilter": { - "type": "string" - }, - "NetworkInputSettings": { - "$ref": "#/definitions/NetworkInputSettings" - }, - "Scte35Pid": { - "type": "integer" - }, - "Smpte2038DataPreference": { - "type": "string" - }, - "SourceEndBehavior": { - "type": "string" - }, - "VideoSelector": { - "$ref": "#/definitions/VideoSelector" - } - }, - "type": "object" - }, - "InputSpecification": { - "additionalProperties": false, - "properties": { - "Codec": { - "type": "string" - }, - "MaximumBitrate": { - "type": "string" - }, - "Resolution": { - "type": "string" - } - }, - "type": "object" - }, - "KeyProviderSettings": { - "additionalProperties": false, - "properties": { - "StaticKeySettings": { - "$ref": "#/definitions/StaticKeySettings" - } - }, - "type": "object" - }, - "M2tsSettings": { - "additionalProperties": false, - "properties": { - "AbsentInputAudioBehavior": { - "type": "string" - }, - "Arib": { - "type": "string" - }, - "AribCaptionsPid": { - "type": "string" - }, - "AribCaptionsPidControl": { - "type": "string" - }, - "AudioBufferModel": { - "type": "string" - }, - "AudioFramesPerPes": { - "type": "integer" - }, - "AudioPids": { - "type": "string" - }, - "AudioStreamType": { - "type": "string" - }, - "Bitrate": { - "type": "integer" - }, - "BufferModel": { - "type": "string" - }, - "CcDescriptor": { - "type": "string" - }, - "DvbNitSettings": { - "$ref": "#/definitions/DvbNitSettings" - }, - "DvbSdtSettings": { - "$ref": "#/definitions/DvbSdtSettings" - }, - "DvbSubPids": { - "type": "string" - }, - "DvbTdtSettings": { - "$ref": "#/definitions/DvbTdtSettings" - }, - "DvbTeletextPid": { - "type": "string" - }, - "Ebif": { - "type": "string" - }, - "EbpAudioInterval": { - "type": "string" - }, - "EbpLookaheadMs": { - "type": "integer" - }, - "EbpPlacement": { - "type": "string" - }, - "EcmPid": { - "type": "string" - }, - "EsRateInPes": { - "type": "string" - }, - "EtvPlatformPid": { - "type": "string" - }, - "EtvSignalPid": { - "type": "string" - }, - "FragmentTime": { - "type": "number" - }, - "Klv": { - "type": "string" - }, - "KlvDataPids": { - "type": "string" - }, - "NielsenId3Behavior": { - "type": "string" - }, - "NullPacketBitrate": { - "type": "number" - }, - "PatInterval": { - "type": "integer" - }, - "PcrControl": { - "type": "string" - }, - "PcrPeriod": { - "type": "integer" - }, - "PcrPid": { - "type": "string" - }, - "PmtInterval": { - "type": "integer" - }, - "PmtPid": { - "type": "string" - }, - "ProgramNum": { - "type": "integer" - }, - "RateMode": { - "type": "string" - }, - "Scte27Pids": { - "type": "string" - }, - "Scte35Control": { - "type": "string" - }, - "Scte35Pid": { - "type": "string" - }, - "Scte35PrerollPullupMilliseconds": { - "type": "number" - }, - "SegmentationMarkers": { - "type": "string" - }, - "SegmentationStyle": { - "type": "string" - }, - "SegmentationTime": { - "type": "number" - }, - "TimedMetadataBehavior": { - "type": "string" - }, - "TimedMetadataPid": { - "type": "string" - }, - "TransportStreamId": { - "type": "integer" - }, - "VideoPid": { - "type": "string" - } - }, - "type": "object" - }, - "M3u8Settings": { - "additionalProperties": false, - "properties": { - "AudioFramesPerPes": { - "type": "integer" - }, - "AudioPids": { - "type": "string" - }, - "EcmPid": { - "type": "string" - }, - "KlvBehavior": { - "type": "string" - }, - "KlvDataPids": { - "type": "string" - }, - "NielsenId3Behavior": { - "type": "string" - }, - "PatInterval": { - "type": "integer" - }, - "PcrControl": { - "type": "string" - }, - "PcrPeriod": { - "type": "integer" - }, - "PcrPid": { - "type": "string" - }, - "PmtInterval": { - "type": "integer" - }, - "PmtPid": { - "type": "string" - }, - "ProgramNum": { - "type": "integer" - }, - "Scte35Behavior": { - "type": "string" - }, - "Scte35Pid": { - "type": "string" - }, - "TimedMetadataBehavior": { - "type": "string" - }, - "TimedMetadataPid": { - "type": "string" - }, - "TransportStreamId": { - "type": "integer" - }, - "VideoPid": { - "type": "string" - } - }, - "type": "object" - }, - "MaintenanceCreateSettings": { - "additionalProperties": false, - "properties": { - "MaintenanceDay": { - "type": "string" - }, - "MaintenanceStartTime": { - "type": "string" - } - }, - "type": "object" - }, - "MediaPackageGroupSettings": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - } - }, - "type": "object" - }, - "MediaPackageOutputDestinationSettings": { - "additionalProperties": false, - "properties": { - "ChannelId": { - "type": "string" - } - }, - "type": "object" - }, - "MediaPackageOutputSettings": { - "additionalProperties": false, - "type": "object" - }, - "MotionGraphicsConfiguration": { - "additionalProperties": false, - "properties": { - "MotionGraphicsInsertion": { - "type": "string" - }, - "MotionGraphicsSettings": { - "$ref": "#/definitions/MotionGraphicsSettings" - } - }, - "type": "object" - }, - "MotionGraphicsSettings": { - "additionalProperties": false, - "properties": { - "HtmlMotionGraphicsSettings": { - "$ref": "#/definitions/HtmlMotionGraphicsSettings" - } - }, - "type": "object" - }, - "Mp2Settings": { - "additionalProperties": false, - "properties": { - "Bitrate": { - "type": "number" - }, - "CodingMode": { - "type": "string" - }, - "SampleRate": { - "type": "number" - } - }, - "type": "object" - }, - "Mpeg2FilterSettings": { - "additionalProperties": false, - "properties": { - "TemporalFilterSettings": { - "$ref": "#/definitions/TemporalFilterSettings" - } - }, - "type": "object" - }, - "Mpeg2Settings": { - "additionalProperties": false, - "properties": { - "AdaptiveQuantization": { - "type": "string" - }, - "AfdSignaling": { - "type": "string" - }, - "ColorMetadata": { - "type": "string" - }, - "ColorSpace": { - "type": "string" - }, - "DisplayAspectRatio": { - "type": "string" - }, - "FilterSettings": { - "$ref": "#/definitions/Mpeg2FilterSettings" - }, - "FixedAfd": { - "type": "string" - }, - "FramerateDenominator": { - "type": "integer" - }, - "FramerateNumerator": { - "type": "integer" - }, - "GopClosedCadence": { - "type": "integer" - }, - "GopNumBFrames": { - "type": "integer" - }, - "GopSize": { - "type": "number" - }, - "GopSizeUnits": { - "type": "string" - }, - "ScanType": { - "type": "string" - }, - "SubgopLength": { - "type": "string" - }, - "TimecodeBurninSettings": { - "$ref": "#/definitions/TimecodeBurninSettings" - }, - "TimecodeInsertion": { - "type": "string" - } - }, - "type": "object" - }, - "MsSmoothGroupSettings": { - "additionalProperties": false, - "properties": { - "AcquisitionPointId": { - "type": "string" - }, - "AudioOnlyTimecodeControl": { - "type": "string" - }, - "CertificateMode": { - "type": "string" - }, - "ConnectionRetryInterval": { - "type": "integer" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "EventId": { - "type": "string" - }, - "EventIdMode": { - "type": "string" - }, - "EventStopBehavior": { - "type": "string" - }, - "FilecacheDuration": { - "type": "integer" - }, - "FragmentLength": { - "type": "integer" - }, - "InputLossAction": { - "type": "string" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - }, - "SegmentationMode": { - "type": "string" - }, - "SendDelayMs": { - "type": "integer" - }, - "SparseTrackType": { - "type": "string" - }, - "StreamManifestBehavior": { - "type": "string" - }, - "TimestampOffset": { - "type": "string" - }, - "TimestampOffsetMode": { - "type": "string" - } - }, - "type": "object" - }, - "MsSmoothOutputSettings": { - "additionalProperties": false, - "properties": { - "H265PackagingType": { - "type": "string" - }, - "NameModifier": { - "type": "string" - } - }, - "type": "object" - }, - "MultiplexGroupSettings": { - "additionalProperties": false, - "type": "object" - }, - "MultiplexOutputSettings": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - } - }, - "type": "object" - }, - "MultiplexProgramChannelDestinationSettings": { - "additionalProperties": false, - "properties": { - "MultiplexId": { - "type": "string" - }, - "ProgramName": { - "type": "string" - } - }, - "type": "object" - }, - "NetworkInputSettings": { - "additionalProperties": false, - "properties": { - "HlsInputSettings": { - "$ref": "#/definitions/HlsInputSettings" - }, - "ServerValidation": { - "type": "string" - } - }, - "type": "object" - }, - "NielsenCBET": { - "additionalProperties": false, - "properties": { - "CbetCheckDigitString": { - "type": "string" - }, - "CbetStepaside": { - "type": "string" - }, - "Csid": { - "type": "string" - } - }, - "type": "object" - }, - "NielsenConfiguration": { - "additionalProperties": false, - "properties": { - "DistributorId": { - "type": "string" - }, - "NielsenPcmToId3Tagging": { - "type": "string" - } - }, - "type": "object" - }, - "NielsenNaesIiNw": { - "additionalProperties": false, - "properties": { - "CheckDigitString": { - "type": "string" - }, - "Sid": { - "type": "number" - }, - "Timezone": { - "type": "string" - } - }, - "type": "object" - }, - "NielsenWatermarksSettings": { - "additionalProperties": false, - "properties": { - "NielsenCbetSettings": { - "$ref": "#/definitions/NielsenCBET" - }, - "NielsenDistributionType": { - "type": "string" - }, - "NielsenNaesIiNwSettings": { - "$ref": "#/definitions/NielsenNaesIiNw" - } - }, - "type": "object" - }, - "Output": { - "additionalProperties": false, - "properties": { - "AudioDescriptionNames": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "CaptionDescriptionNames": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "OutputName": { - "type": "string" - }, - "OutputSettings": { - "$ref": "#/definitions/OutputSettings" - }, - "VideoDescriptionName": { - "type": "string" - } - }, - "type": "object" - }, - "OutputDestination": { - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" - }, - "MediaPackageSettings": { - "items": { - "$ref": "#/definitions/MediaPackageOutputDestinationSettings" - }, - "type": "array", - "uniqueItems": false - }, - "MultiplexSettings": { - "$ref": "#/definitions/MultiplexProgramChannelDestinationSettings" - }, - "Settings": { - "items": { - "$ref": "#/definitions/OutputDestinationSettings" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "OutputDestinationSettings": { - "additionalProperties": false, - "properties": { - "PasswordParam": { - "type": "string" - }, - "StreamName": { - "type": "string" - }, - "Url": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, - "OutputGroup": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "OutputGroupSettings": { - "$ref": "#/definitions/OutputGroupSettings" - }, - "Outputs": { - "items": { - "$ref": "#/definitions/Output" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "OutputGroupSettings": { - "additionalProperties": false, - "properties": { - "ArchiveGroupSettings": { - "$ref": "#/definitions/ArchiveGroupSettings" - }, - "FrameCaptureGroupSettings": { - "$ref": "#/definitions/FrameCaptureGroupSettings" - }, - "HlsGroupSettings": { - "$ref": "#/definitions/HlsGroupSettings" - }, - "MediaPackageGroupSettings": { - "$ref": "#/definitions/MediaPackageGroupSettings" - }, - "MsSmoothGroupSettings": { - "$ref": "#/definitions/MsSmoothGroupSettings" - }, - "MultiplexGroupSettings": { - "$ref": "#/definitions/MultiplexGroupSettings" - }, - "RtmpGroupSettings": { - "$ref": "#/definitions/RtmpGroupSettings" - }, - "UdpGroupSettings": { - "$ref": "#/definitions/UdpGroupSettings" - } - }, - "type": "object" - }, - "OutputLocationRef": { - "additionalProperties": false, - "properties": { - "DestinationRefId": { - "type": "string" - } - }, - "type": "object" - }, - "OutputLockingSettings": { - "additionalProperties": false, - "properties": { - "EpochLockingSettings": { - "$ref": "#/definitions/EpochLockingSettings" - }, - "PipelineLockingSettings": { - "$ref": "#/definitions/PipelineLockingSettings" - } - }, - "type": "object" - }, - "OutputSettings": { - "additionalProperties": false, - "properties": { - "ArchiveOutputSettings": { - "$ref": "#/definitions/ArchiveOutputSettings" - }, - "FrameCaptureOutputSettings": { - "$ref": "#/definitions/FrameCaptureOutputSettings" - }, - "HlsOutputSettings": { - "$ref": "#/definitions/HlsOutputSettings" - }, - "MediaPackageOutputSettings": { - "$ref": "#/definitions/MediaPackageOutputSettings" - }, - "MsSmoothOutputSettings": { - "$ref": "#/definitions/MsSmoothOutputSettings" - }, - "MultiplexOutputSettings": { - "$ref": "#/definitions/MultiplexOutputSettings" - }, - "RtmpOutputSettings": { - "$ref": "#/definitions/RtmpOutputSettings" - }, - "UdpOutputSettings": { - "$ref": "#/definitions/UdpOutputSettings" - } - }, - "type": "object" - }, - "PassThroughSettings": { - "additionalProperties": false, - "type": "object" - }, - "PipelineLockingSettings": { - "additionalProperties": false, - "type": "object" - }, - "RawSettings": { - "additionalProperties": false, - "type": "object" - }, - "Rec601Settings": { - "additionalProperties": false, - "type": "object" - }, - "Rec709Settings": { - "additionalProperties": false, - "type": "object" - }, - "RemixSettings": { - "additionalProperties": false, - "properties": { - "ChannelMappings": { - "items": { - "$ref": "#/definitions/AudioChannelMapping" - }, - "type": "array", - "uniqueItems": false - }, - "ChannelsIn": { - "type": "integer" - }, - "ChannelsOut": { - "type": "integer" - } - }, - "type": "object" - }, - "RtmpCaptionInfoDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "RtmpGroupSettings": { - "additionalProperties": false, - "properties": { - "AdMarkers": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "AuthenticationScheme": { - "type": "string" - }, - "CacheFullBehavior": { - "type": "string" - }, - "CacheLength": { - "type": "integer" - }, - "CaptionData": { - "type": "string" - }, - "IncludeFillerNalUnits": { - "type": "string" - }, - "InputLossAction": { - "type": "string" - }, - "RestartDelay": { - "type": "integer" - } - }, - "type": "object" - }, - "RtmpOutputSettings": { - "additionalProperties": false, - "properties": { - "CertificateMode": { - "type": "string" - }, - "ConnectionRetryInterval": { - "type": "integer" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "NumRetries": { - "type": "integer" - } - }, - "type": "object" - }, - "Scte20PlusEmbeddedDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "Scte20SourceSettings": { - "additionalProperties": false, - "properties": { - "Convert608To708": { - "type": "string" - }, - "Source608ChannelNumber": { - "type": "integer" - } - }, - "type": "object" - }, - "Scte27DestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "Scte27SourceSettings": { - "additionalProperties": false, - "properties": { - "OcrLanguage": { - "type": "string" - }, - "Pid": { - "type": "integer" - } - }, - "type": "object" - }, - "Scte35SpliceInsert": { - "additionalProperties": false, - "properties": { - "AdAvailOffset": { - "type": "integer" - }, - "NoRegionalBlackoutFlag": { - "type": "string" - }, - "WebDeliveryAllowedFlag": { - "type": "string" - } - }, - "type": "object" - }, - "Scte35TimeSignalApos": { - "additionalProperties": false, - "properties": { - "AdAvailOffset": { - "type": "integer" - }, - "NoRegionalBlackoutFlag": { - "type": "string" - }, - "WebDeliveryAllowedFlag": { - "type": "string" - } - }, - "type": "object" - }, - "SmpteTtDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "StandardHlsSettings": { - "additionalProperties": false, - "properties": { - "AudioRenditionSets": { - "type": "string" - }, - "M3u8Settings": { - "$ref": "#/definitions/M3u8Settings" - } - }, - "type": "object" - }, - "StaticKeySettings": { - "additionalProperties": false, - "properties": { - "KeyProviderServer": { - "$ref": "#/definitions/InputLocation" - }, - "StaticKeyValue": { - "type": "string" - } - }, - "type": "object" - }, - "TeletextDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "TeletextSourceSettings": { - "additionalProperties": false, - "properties": { - "OutputRectangle": { - "$ref": "#/definitions/CaptionRectangle" - }, - "PageNumber": { - "type": "string" - } - }, - "type": "object" - }, - "TemporalFilterSettings": { - "additionalProperties": false, - "properties": { - "PostFilterSharpening": { - "type": "string" - }, - "Strength": { - "type": "string" - } - }, - "type": "object" - }, - "ThumbnailConfiguration": { - "additionalProperties": false, - "properties": { - "State": { - "type": "string" - } - }, - "type": "object" - }, - "TimecodeBurninSettings": { - "additionalProperties": false, - "properties": { - "FontSize": { - "type": "string" - }, - "Position": { - "type": "string" - }, - "Prefix": { - "type": "string" - } - }, - "type": "object" - }, - "TimecodeConfig": { - "additionalProperties": false, - "properties": { - "Source": { - "type": "string" - }, - "SyncThreshold": { - "type": "integer" - } - }, - "type": "object" - }, - "TtmlDestinationSettings": { - "additionalProperties": false, - "properties": { - "StyleControl": { - "type": "string" - } - }, - "type": "object" - }, - "UdpContainerSettings": { - "additionalProperties": false, - "properties": { - "M2tsSettings": { - "$ref": "#/definitions/M2tsSettings" - } - }, - "type": "object" - }, - "UdpGroupSettings": { - "additionalProperties": false, - "properties": { - "InputLossAction": { - "type": "string" - }, - "TimedMetadataId3Frame": { - "type": "string" - }, - "TimedMetadataId3Period": { - "type": "integer" - } - }, - "type": "object" - }, - "UdpOutputSettings": { - "additionalProperties": false, - "properties": { - "BufferMsec": { - "type": "integer" - }, - "ContainerSettings": { - "$ref": "#/definitions/UdpContainerSettings" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "FecOutputSettings": { - "$ref": "#/definitions/FecOutputSettings" - } - }, - "type": "object" - }, - "VideoBlackFailoverSettings": { - "additionalProperties": false, - "properties": { - "BlackDetectThreshold": { - "type": "number" - }, - "VideoBlackThresholdMsec": { - "type": "integer" - } - }, - "type": "object" - }, - "VideoCodecSettings": { - "additionalProperties": false, - "properties": { - "FrameCaptureSettings": { - "$ref": "#/definitions/FrameCaptureSettings" - }, - "H264Settings": { - "$ref": "#/definitions/H264Settings" - }, - "H265Settings": { - "$ref": "#/definitions/H265Settings" - }, - "Mpeg2Settings": { - "$ref": "#/definitions/Mpeg2Settings" - } - }, - "type": "object" - }, - "VideoDescription": { - "additionalProperties": false, - "properties": { - "CodecSettings": { - "$ref": "#/definitions/VideoCodecSettings" - }, - "Height": { - "type": "integer" - }, - "Name": { - "type": "string" - }, - "RespondToAfd": { - "type": "string" - }, - "ScalingBehavior": { - "type": "string" - }, - "Sharpness": { - "type": "integer" - }, - "Width": { - "type": "integer" - } - }, - "type": "object" - }, - "VideoSelector": { - "additionalProperties": false, - "properties": { - "ColorSpace": { - "type": "string" - }, - "ColorSpaceSettings": { - "$ref": "#/definitions/VideoSelectorColorSpaceSettings" - }, - "ColorSpaceUsage": { - "type": "string" - }, - "SelectorSettings": { - "$ref": "#/definitions/VideoSelectorSettings" - } - }, - "type": "object" - }, - "VideoSelectorColorSpaceSettings": { - "additionalProperties": false, - "properties": { - "Hdr10Settings": { - "$ref": "#/definitions/Hdr10Settings" - } - }, - "type": "object" - }, - "VideoSelectorPid": { - "additionalProperties": false, - "properties": { - "Pid": { - "type": "integer" - } - }, - "type": "object" - }, - "VideoSelectorProgramId": { - "additionalProperties": false, - "properties": { - "ProgramId": { - "type": "integer" - } - }, - "type": "object" - }, - "VideoSelectorSettings": { - "additionalProperties": false, - "properties": { - "VideoSelectorPid": { - "$ref": "#/definitions/VideoSelectorPid" - }, - "VideoSelectorProgramId": { - "$ref": "#/definitions/VideoSelectorProgramId" - } - }, - "type": "object" - }, - "VpcOutputSettings": { - "additionalProperties": false, - "properties": { - "PublicAddressAllocationIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "WavSettings": { - "additionalProperties": false, - "properties": { - "BitDepth": { - "type": "number" - }, - "CodingMode": { - "type": "string" - }, - "SampleRate": { - "type": "number" - } - }, - "type": "object" - }, - "WebvttDestinationSettings": { - "additionalProperties": false, - "properties": { - "StyleControl": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::MediaLive::Channel", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "type": "string" - }, - "CdiInputSpecification": { - "$ref": "#/definitions/CdiInputSpecification" - }, - "ChannelClass": { - "type": "string" - }, - "Destinations": { - "items": { - "$ref": "#/definitions/OutputDestination" - }, - "type": "array", - "uniqueItems": false - }, - "EncoderSettings": { - "$ref": "#/definitions/EncoderSettings" - }, - "Id": { - "type": "string" - }, - "InputAttachments": { - "items": { - "$ref": "#/definitions/InputAttachment" - }, - "type": "array", - "uniqueItems": false - }, - "InputSpecification": { - "$ref": "#/definitions/InputSpecification" - }, - "Inputs": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "LogLevel": { - "type": "string" - }, - "Maintenance": { - "$ref": "#/definitions/MaintenanceCreateSettings" - }, - "Name": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "Tags": { - "type": "object" - }, - "Vpc": { - "$ref": "#/definitions/VpcOutputSettings" - } - }, - "readOnlyProperties": [ - "/properties/Inputs", - "/properties/Id", - "/properties/Arn" - ], - "typeName": "AWS::MediaLive::Channel" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-memorydb-cluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-memorydb-cluster.json new file mode 100644 index 0000000000..d58bfb2aac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-memorydb-cluster.json @@ -0,0 +1,257 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ClusterName", + "/properties/TLSEnabled", + "/properties/DataTiering", + "/properties/KmsKeyId", + "/properties/Port", + "/properties/SubnetGroupName", + "/properties/SnapshotArns", + "/properties/SnapshotName" + ], + "definitions": { + "DataTieringStatus": { + "enum": [ + "true", + "false" + ], + "type": "string" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The DNS address of the primary read-write node.", + "type": "string" + }, + "Port": { + "description": "The port number that the engine is listening on. ", + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key for the tag. May not be null.", + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)(?!memorydb:)[a-zA-Z0-9 _\\.\\/=+:\\-@]{1,128}$", + "type": "string" + }, + "Value": { + "description": "The tag's value. May be null.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(?!aws:)(?!memorydb:)[a-zA-Z0-9 _\\.\\/=+:\\-@]{1,256}$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "The AWS::MemoryDB::Cluster resource creates an Amazon MemoryDB Cluster.", + "handlers": { + "create": { + "permissions": [ + "kms:DescribeKey", + "kms:CreateGrant", + "memorydb:CreateCluster", + "memorydb:DescribeClusters", + "memorydb:TagResource", + "memorydb:ListTags" + ] + }, + "delete": { + "permissions": [ + "memorydb:DeleteCluster", + "memorydb:DescribeClusters" + ] + }, + "list": { + "permissions": [ + "memorydb:DescribeClusters" + ] + }, + "read": { + "permissions": [ + "memorydb:DescribeClusters", + "memorydb:ListTags" + ] + }, + "update": { + "permissions": [ + "memorydb:UpdateCluster", + "memorydb:DescribeClusters", + "memorydb:ListTags", + "memorydb:TagResource", + "memorydb:UntagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/ClusterName" + ], + "properties": { + "ACLName": { + "description": "The name of the Access Control List to associate with the cluster.", + "pattern": "[a-zA-Z][a-zA-Z0-9\\-]*", + "type": "string" + }, + "ARN": { + "description": "The Amazon Resource Name (ARN) of the cluster.", + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "description": "A flag that enables automatic minor version upgrade when set to true.\n\nYou cannot modify the value of AutoMinorVersionUpgrade after the cluster is created. To enable AutoMinorVersionUpgrade on a cluster you must set AutoMinorVersionUpgrade to true when you create a cluster.", + "type": "boolean" + }, + "ClusterEndpoint": { + "$ref": "#/definitions/Endpoint", + "description": "The cluster endpoint." + }, + "ClusterName": { + "description": "The name of the cluster. This value must be unique as it also serves as the cluster identifier.", + "pattern": "[a-z][a-z0-9\\-]*", + "type": "string" + }, + "DataTiering": { + "$ref": "#/definitions/DataTieringStatus", + "description": "Enables data tiering. Data tiering is only supported for clusters using the r6gd node type. This parameter must be set when using r6gd nodes.", + "type": "object" + }, + "Description": { + "description": "An optional description of the cluster.", + "type": "string" + }, + "EngineVersion": { + "description": "The Redis engine version used by the cluster.", + "type": "string" + }, + "FinalSnapshotName": { + "description": "The user-supplied name of a final cluster snapshot. This is the unique name that identifies the snapshot. MemoryDB creates the snapshot, and then deletes the cluster immediately afterward.", + "type": "string" + }, + "KmsKeyId": { + "description": "The ID of the KMS key used to encrypt the cluster.", + "type": "string" + }, + "MaintenanceWindow": { + "description": "Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.", + "type": "string" + }, + "NodeType": { + "description": "The compute and memory capacity of the nodes in the cluster.", + "type": "string" + }, + "NumReplicasPerShard": { + "description": "The number of replicas to apply to each shard. The limit is 5.", + "type": "integer" + }, + "NumShards": { + "description": "The number of shards the cluster will contain.", + "type": "integer" + }, + "ParameterGroupName": { + "description": "The name of the parameter group associated with the cluster.", + "type": "string" + }, + "ParameterGroupStatus": { + "description": "The status of the parameter group used by the cluster.", + "type": "string" + }, + "Port": { + "description": "The port number on which each member of the cluster accepts connections.", + "type": "integer" + }, + "SecurityGroupIds": { + "description": "One or more Amazon VPC security groups associated with this cluster.", + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SnapshotArns": { + "description": "A list of Amazon Resource Names (ARN) that uniquely identify the RDB snapshot files stored in Amazon S3. The snapshot files are used to populate the new cluster. The Amazon S3 object name in the ARN cannot contain any commas.", + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SnapshotName": { + "description": "The name of a snapshot from which to restore data into the new cluster. The snapshot status changes to restoring while the new cluster is being created.", + "type": "string" + }, + "SnapshotRetentionLimit": { + "description": "The number of days for which MemoryDB retains automatic snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted.", + "type": "integer" + }, + "SnapshotWindow": { + "description": "The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your cluster.", + "type": "string" + }, + "SnsTopicArn": { + "description": "The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.", + "type": "string" + }, + "SnsTopicStatus": { + "description": "The status of the Amazon SNS notification topic. Notifications are sent only if the status is enabled.", + "type": "string" + }, + "Status": { + "description": "The status of the cluster. For example, Available, Updating, Creating.", + "type": "string" + }, + "SubnetGroupName": { + "description": "The name of the subnet group to be used for the cluster.", + "type": "string" + }, + "TLSEnabled": { + "description": "A flag that enables in-transit encryption when set to true.\n\nYou cannot modify the value of TransitEncryptionEnabled after the cluster is created. To enable in-transit encryption on a cluster you must set TransitEncryptionEnabled to true when you create a cluster.", + "type": "boolean" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this cluster.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Status", + "/properties/ClusterEndpoint/Address", + "/properties/ClusterEndpoint/Port", + "/properties/ARN", + "/properties/ParameterGroupStatus" + ], + "required": [ + "ClusterName", + "NodeType", + "ACLName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-memorydb", + "taggable": true, + "typeName": "AWS::MemoryDB::Cluster", + "writeOnlyProperties": [ + "/properties/SnapshotArns", + "/properties/SnapshotName", + "/properties/FinalSnapshotName" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-route53resolver-resolverconfig.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-route53resolver-resolverconfig.json deleted file mode 100644 index aee12f4e22..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-route53resolver-resolverconfig.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ResourceId", - "/properties/AutodefinedReverseFlag" - ], - "description": "Resource schema for AWS::Route53Resolver::ResolverConfig.", - "handlers": { - "create": { - "permissions": [ - "route53resolver:UpdateResolverConfig", - "route53resolver:GetResolverConfig", - "ec2:DescribeVpcs" - ] - }, - "delete": { - "permissions": [ - "route53resolver:UpdateResolverConfig", - "route53resolver:ListResolverConfigs", - "ec2:DescribeVpcs" - ] - }, - "list": { - "permissions": [ - "route53resolver:ListResolverConfigs", - "ec2:DescribeVpcs" - ] - }, - "read": { - "permissions": [ - "route53resolver:GetResolverConfig", - "ec2:DescribeVpcs" - ] - } - }, - "primaryIdentifier": [ - "/properties/ResourceId" - ], - "properties": { - "AutodefinedReverse": { - "description": "ResolverAutodefinedReverseStatus, possible values are ENABLING, ENABLED, DISABLING AND DISABLED.", - "enum": [ - "ENABLING", - "ENABLED", - "DISABLING", - "DISABLED" - ], - "type": "string" - }, - "AutodefinedReverseFlag": { - "description": "Represents the desired status of AutodefinedReverse. The only supported value on creation is DISABLE. Deletion of this resource will return AutodefinedReverse to its default value (ENABLED).", - "enum": [ - "DISABLE" - ], - "type": "string" - }, - "Id": { - "description": "Id", - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "OwnerId": { - "description": "AccountId", - "maxLength": 32, - "minLength": 12, - "type": "string" - }, - "ResourceId": { - "description": "ResourceId", - "maxLength": 64, - "minLength": 1, - "type": "string" - } - }, - "propertyTransform": { - "/properties/AutodefinedReverseFlag": "$join([AutodefinedReverseFlag, \"D\"])" - }, - "readOnlyProperties": [ - "/properties/OwnerId", - "/properties/Id", - "/properties/AutodefinedReverse" - ], - "required": [ - "ResourceId", - "AutodefinedReverseFlag" - ], - "taggable": false, - "typeName": "AWS::Route53Resolver::ResolverConfig" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-signer-signingprofile.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-signer-signingprofile.json new file mode 100644 index 0000000000..eb22519dd2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-signer-signingprofile.json @@ -0,0 +1,145 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/ProfileName" + ], + [ + "/properties/ProfileVersionArn" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PlatformId", + "/properties/SignatureValidityPeriod" + ], + "definitions": { + "Arn": { + "pattern": "^arn:aws(-(cn|gov))?:[a-z-]+:(([a-z]+-)+[0-9])?:([0-9]{12})?:[^.]+$", + "type": "string" + }, + "PlatformId": { + "enum": [ + "AWSLambda-SHA384-ECDSA", + "Notation-OCI-SHA384-ECDSA" + ], + "type": "string" + }, + "ProfileVersion": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "SignatureValidityPeriod": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "DAYS", + "MONTHS", + "YEARS" + ], + "type": "string" + }, + "Value": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + } + }, + "description": "A signing profile is a signing template that can be used to carry out a pre-defined signing job.", + "handlers": { + "create": { + "permissions": [ + "signer:PutSigningProfile", + "signer:TagResource" + ] + }, + "delete": { + "permissions": [ + "signer:CancelSigningProfile", + "signer:GetSigningProfile" + ] + }, + "list": { + "permissions": [ + "signer:ListSigningProfiles" + ] + }, + "read": { + "permissions": [ + "signer:GetSigningProfile" + ] + }, + "update": { + "permissions": [ + "signer:TagResource", + "signer:UntagResource", + "signer:GetSigningProfile" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/Arn", + "description": "The Amazon Resource Name (ARN) of the specified signing profile." + }, + "PlatformId": { + "$ref": "#/definitions/PlatformId", + "description": "The ID of the target signing platform." + }, + "ProfileName": { + "description": "A name for the signing profile. AWS CloudFormation generates a unique physical ID and uses that ID for the signing profile name. ", + "type": "string" + }, + "ProfileVersion": { + "$ref": "#/definitions/ProfileVersion", + "description": "A version for the signing profile. AWS Signer generates a unique version for each profile of the same profile name." + }, + "ProfileVersionArn": { + "$ref": "#/definitions/Arn", + "description": "The Amazon Resource Name (ARN) of the specified signing profile version." + }, + "SignatureValidityPeriod": { + "$ref": "#/definitions/SignatureValidityPeriod", + "description": "Signature validity period of the profile." + }, + "Tags": { + "description": "A list of tags associated with the signing profile.", + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ProfileName", + "/properties/ProfileVersion", + "/properties/Arn", + "/properties/ProfileVersionArn" + ], + "required": [ + "PlatformId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::Signer::SigningProfile" +} 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 292d45f85e..cbc2a94310 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py @@ -8,6 +8,7 @@ "AWS::Pinpoint::App", "AWS::Connect::UserHierarchyGroup", "AWS::ApiGatewayV2::ApiMapping", + "AWS::CE::AnomalySubscription", "AWS::Shield::DRTAccess", "AWS::SSO::Assignment", "AWS::Glue::Partition", @@ -63,6 +64,7 @@ "AWS::Logs::ResourcePolicy", "AWS::Lex::BotVersion", "AWS::ServiceCatalog::LaunchNotificationConstraint", + "AWS::DMS::InstanceProfile", "AWS::OpenSearchServerless::VpcEndpoint", "AWS::QuickSight::DataSource", "AWS::IoT::CACertificate", @@ -294,6 +296,7 @@ "AWS::GuardDuty::Member", "AWS::GroundStation::MissionProfile", "AWS::CloudFormation::CustomResource", + "AWS::FIS::TargetAccountConfiguration", "AWS::RefactorSpaces::Route", "AWS::NimbleStudio::LaunchProfile", "AWS::KinesisAnalytics::ApplicationOutput", @@ -590,6 +593,7 @@ "AWS::ServiceCatalog::AcceptedPortfolioShare", "AWS::Route53Resolver::FirewallRuleGroupAssociation", "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", "AWS::EC2::Subnet", "AWS::CloudTrail::ResourcePolicy", "AWS::IoTTwinMaker::ComponentType", @@ -773,6 +777,7 @@ "AWS::CloudWatch::AnomalyDetector", "AWS::EC2::SubnetNetworkAclAssociation", "AWS::ServiceCatalog::ServiceAction", + "AWS::DMS::MigrationProject", "AWS::AppStream::Entitlement", "AWS::IAM::UserPolicy", "AWS::Connect::ViewVersion", @@ -1003,6 +1008,7 @@ "AWS::ApiGatewayV2::RouteResponse", "AWS::QuickSight::Topic", "AWS::CloudWatch::MetricStream", + "AWS::DMS::DataProvider", "AWS::Location::GeofenceCollection", "AWS::SSM::Parameter", "AWS::ApiGatewayV2::ApiGatewayManagedOverrides", @@ -1012,6 +1018,7 @@ "AWS::SageMaker::MonitoringSchedule", "AWS::IAM::OIDCProvider", "AWS::LakeFormation::Tag", + "AWS::CE::AnomalyMonitor", "AWS::ServiceCatalogAppRegistry::ResourceAssociation", "AWS::Timestream::Table", "AWS::EC2::VPNGateway", @@ -1118,6 +1125,7 @@ "aws-pinpoint-app.json", "aws-connect-userhierarchygroup.json", "aws-apigatewayv2-apimapping.json", + "aws-ce-anomalysubscription.json", "aws-shield-drtaccess.json", "aws-sso-assignment.json", "aws-glue-partition.json", @@ -1132,6 +1140,7 @@ "aws-servicecatalog-portfolioprincipalassociation.json", "aws-ram-resourceshare.json", "aws-memorydb-cluster.json", + "aws-dms-replicationconfig.json", "aws-dynamodb-table.json", "aws-amazonmq-configurationassociation.json", "aws-wafregional-ipset.json", @@ -1145,6 +1154,7 @@ "aws-config-configurationrecorder.json", "aws-msk-replicator.json", "aws-ec2-networkperformancemetricsubscription.json", + "aws-medialive-channel.json", "aws-greengrass-devicedefinition.json", "aws-quicksight-analysis.json", "aws-kendra-faq.json", @@ -1169,6 +1179,7 @@ "aws-logs-resourcepolicy.json", "aws-lex-botversion.json", "aws-servicecatalog-launchnotificationconstraint.json", + "aws-dms-instanceprofile.json", "aws-opensearchserverless-vpcendpoint.json", "aws-quicksight-datasource.json", "aws-iot-cacertificate.json", @@ -1275,7 +1286,6 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", - "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -1303,6 +1313,7 @@ "aws-customerprofiles-integration.json", "aws-workspaces-connectionalias.json", "aws-wafregional-sizeconstraintset.json", + "aws-eventschemas-discoverer.json", "aws-networkmanager-connectpeer.json", "aws-elasticache-usergroup.json", "aws-iot-thinggroup.json", @@ -1363,6 +1374,7 @@ "aws-codestarnotifications-notificationrule.json", "aws-sagemaker-endpointconfig.json", "aws-appmesh-gatewayroute.json", + "aws-cleanrooms-membership.json", "aws-apigateway-apikey.json", "aws-gamelift-location.json", "aws-networkmanager-transitgatewayroutetableattachment.json", @@ -1379,7 +1391,6 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", - "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-entityresolution-schemamapping.json", "aws-wafregional-xssmatchset.json", @@ -1393,6 +1404,7 @@ "aws-guardduty-member.json", "aws-groundstation-missionprofile.json", "aws-cloudformation-customresource.json", + "aws-fis-targetaccountconfiguration.json", "aws-refactorspaces-route.json", "aws-nimblestudio-launchprofile.json", "aws-kinesisanalytics-applicationoutput.json", @@ -1404,7 +1416,6 @@ "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", - "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-location-trackerconsumer.json", "aws-vpclattice-servicenetwork.json", @@ -1486,6 +1497,7 @@ "aws-location-routecalculator.json", "aws-servicecatalog-portfolioshare.json", "aws-apigateway-vpclink.json", + "aws-connect-integrationassociation.json", "aws-networkmanager-customergatewayassociation.json", "aws-iam-servercertificate.json", "aws-codestarconnections-connection.json", @@ -1681,6 +1693,7 @@ "aws-servicecatalog-acceptedportfolioshare.json", "aws-route53resolver-firewallrulegroupassociation.json", "aws-route53resolver-resolverqueryloggingconfig.json", + "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-subnet.json", "aws-cloudtrail-resourcepolicy.json", "aws-iottwinmaker-componenttype.json", @@ -1716,6 +1729,7 @@ "aws-servicediscovery-service.json", "aws-iottwinmaker-syncjob.json", "aws-customerprofiles-objecttype.json", + "aws-cloudfront-monitoringsubscription.json", "aws-iotevents-alarmmodel.json", "aws-efs-mounttarget.json", "aws-quicksight-dataset.json", @@ -1743,7 +1757,6 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", - "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-customerprofiles-eventstream.json", @@ -1791,6 +1804,7 @@ "aws-ssmincidents-responseplan.json", "aws-lambda-layerversionpermission.json", "aws-secretsmanager-secret.json", + "aws-route53resolver-resolverconfig.json", "aws-elasticache-user.json", "aws-sagemaker-image.json", "aws-logs-subscriptionfilter.json", @@ -1858,6 +1872,7 @@ "aws-cloudwatch-anomalydetector.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-servicecatalog-serviceaction.json", + "aws-dms-migrationproject.json", "aws-appstream-entitlement.json", "aws-iam-userpolicy.json", "aws-connect-viewversion.json", @@ -1874,7 +1889,6 @@ "aws-lightsail-loadbalancertlscertificate.json", "aws-ec2-clientvpntargetnetworkassociation.json", "aws-mediapackagev2-originendpoint.json", - "aws-appsync-graphqlapi.json", "aws-gamelift-matchmakingruleset.json", "aws-ec2-egressonlyinternetgateway.json", "aws-athena-capacityreservation.json", @@ -2000,6 +2014,7 @@ "aws-events-endpoint.json", "aws-amazonmq-broker.json", "aws-emr-step.json", + "aws-cleanrooms-collaboration.json", "aws-ssm-association.json", "aws-ec2-clientvpnendpoint.json", "aws-cloudfront-responseheaderspolicy.json", @@ -2058,6 +2073,7 @@ "aws-networkmanager-corenetwork.json", "aws-iotwireless-deviceprofile.json", "aws-batch-computeenvironment.json", + "aws-connect-instancestorageconfig.json", "aws-quicksight-vpcconnection.json", "aws-datapipeline-pipeline.json", "aws-iot-thing.json", @@ -2082,6 +2098,7 @@ "aws-apigatewayv2-routeresponse.json", "aws-quicksight-topic.json", "aws-cloudwatch-metricstream.json", + "aws-dms-dataprovider.json", "aws-location-geofencecollection.json", "aws-ssm-parameter.json", "aws-apigatewayv2-apigatewaymanagedoverrides.json", @@ -2091,6 +2108,7 @@ "aws-sagemaker-monitoringschedule.json", "aws-iam-oidcprovider.json", "aws-lakeformation-tag.json", + "aws-ce-anomalymonitor.json", "aws-servicecatalogappregistry-resourceassociation.json", "aws-timestream-table.json", "aws-ec2-vpngateway.json", @@ -2180,7 +2198,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-redshift-eventsubscription.json", "aws-iotfleethub-application.json", - "aws-connect-user.json", "aws-ssmcontacts-contactchannel.json", "aws-memorydb-acl.json", "aws-cloudformation-waitconditionhandle.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-appsync-graphqlapi.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-appsync-graphqlapi.json new file mode 100644 index 0000000000..077c3fd5af --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-appsync-graphqlapi.json @@ -0,0 +1,222 @@ +{ + "additionalProperties": false, + "definitions": { + "AdditionalAuthenticationProvider": { + "additionalProperties": false, + "properties": { + "AuthenticationType": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "UserPoolConfig": { + "$ref": "#/definitions/CognitoUserPoolConfig" + } + }, + "required": [ + "AuthenticationType" + ], + "type": "object" + }, + "CognitoUserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "LambdaAuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsRoleArn": { + "type": "string" + }, + "ExcludeVerboseContent": { + "type": "boolean" + }, + "FieldLogLevel": { + "type": "string" + } + }, + "type": "object" + }, + "OpenIDConnectConfig": { + "additionalProperties": false, + "properties": { + "AuthTTL": { + "type": "number" + }, + "ClientId": { + "type": "string" + }, + "IatTTL": { + "type": "number" + }, + "Issuer": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "UserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "DefaultAction": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AppSync::GraphQLApi", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalAuthenticationProviders": { + "items": { + "$ref": "#/definitions/AdditionalAuthenticationProvider" + }, + "type": "array", + "uniqueItems": false + }, + "ApiId": { + "type": "string" + }, + "ApiType": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "AuthenticationType": { + "enum": [ + "API_KEY", + "AWS_IAM", + "AMAZON_COGNITO_USER_POOLS", + "OPENID_CONNECT", + "AWS_LAMBDA" + ], + "type": "string" + }, + "GraphQLDns": { + "type": "string" + }, + "GraphQLEndpointArn": { + "type": "string" + }, + "GraphQLUrl": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "LogConfig": { + "$ref": "#/definitions/LogConfig" + }, + "MergedApiExecutionRoleArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "OwnerContact": { + "type": "string" + }, + "RealtimeDns": { + "type": "string" + }, + "RealtimeUrl": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UserPoolConfig": { + "$ref": "#/definitions/UserPoolConfig" + }, + "Visibility": { + "type": "string" + }, + "XrayEnabled": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/ApiId", + "/properties/GraphQLEndpointArn", + "/properties/Id", + "/properties/GraphQLDns", + "/properties/GraphQLUrl", + "/properties/RealtimeDns", + "/properties/RealtimeUrl", + "/properties/Arn" + ], + "required": [ + "Name", + "AuthenticationType" + ], + "typeName": "AWS::AppSync::GraphQLApi" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-collaboration.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-collaboration.json deleted file mode 100644 index 3c147bd325..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-collaboration.json +++ /dev/null @@ -1,240 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CreatorDisplayName", - "/properties/CreatorMemberAbilities", - "/properties/DataEncryptionMetadata", - "/properties/QueryLogStatus", - "/properties/Members" - ], - "definitions": { - "CollaborationQueryLogStatus": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "DataEncryptionMetadata": { - "additionalProperties": false, - "properties": { - "AllowCleartext": { - "type": "boolean" - }, - "AllowDuplicates": { - "type": "boolean" - }, - "AllowJoinsOnColumnsWithDifferentNames": { - "type": "boolean" - }, - "PreserveNulls": { - "type": "boolean" - } - }, - "required": [ - "AllowCleartext", - "AllowDuplicates", - "AllowJoinsOnColumnsWithDifferentNames", - "PreserveNulls" - ], - "type": "object" - }, - "MemberAbilities": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/MemberAbility" - }, - "type": "array", - "uniqueItems": true - }, - "MemberAbility": { - "enum": [ - "CAN_QUERY", - "CAN_RECEIVE_RESULTS" - ], - "type": "string" - }, - "MemberSpecification": { - "additionalProperties": false, - "properties": { - "AccountId": { - "maxLength": 12, - "minLength": 12, - "pattern": "^\\d+$", - "type": "string" - }, - "DisplayName": { - "$ref": "#/definitions/Name" - }, - "MemberAbilities": { - "$ref": "#/definitions/MemberAbilities" - } - }, - "required": [ - "AccountId", - "DisplayName", - "MemberAbilities" - ], - "type": "object" - }, - "MemberStatus": { - "enum": [ - "INVITED", - "ACTIVE", - "LEFT", - "REMOVED" - ], - "type": "string" - }, - "Name": { - "maxLength": 100, - "minLength": 1, - "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$", - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Represents a collaboration between AWS accounts that allows for secure data collaboration", - "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html", - "handlers": { - "create": { - "permissions": [ - "cleanrooms:CreateCollaboration", - "cleanrooms:GetCollaboration", - "cleanrooms:ListMembers", - "cleanrooms:ListTagsForResource", - "cleanrooms:TagResource", - "cleanrooms:GetCollaboration", - "cleanrooms:ListCollaborations" - ] - }, - "delete": { - "permissions": [ - "cleanrooms:DeleteCollaboration", - "cleanrooms:GetCollaboration", - "cleanrooms:ListTagsForResource", - "cleanrooms:UntagResource", - "cleanrooms:ListMembers", - "cleanrooms:ListCollaborations" - ] - }, - "list": { - "permissions": [ - "cleanrooms:ListCollaborations" - ] - }, - "read": { - "permissions": [ - "cleanrooms:GetCollaboration", - "cleanrooms:ListMembers", - "cleanrooms:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "cleanrooms:UpdateCollaboration", - "cleanrooms:GetCollaboration", - "cleanrooms:ListMembers", - "cleanrooms:ListTagsForResource", - "cleanrooms:TagResource", - "cleanrooms:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CollaborationIdentifier" - ], - "properties": { - "Arn": { - "maxLength": 100, - "type": "string" - }, - "CollaborationIdentifier": { - "maxLength": 36, - "minLength": 36, - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", - "type": "string" - }, - "CreatorDisplayName": { - "$ref": "#/definitions/Name" - }, - "CreatorMemberAbilities": { - "$ref": "#/definitions/MemberAbilities" - }, - "DataEncryptionMetadata": { - "$ref": "#/definitions/DataEncryptionMetadata" - }, - "Description": { - "maxLength": 255, - "minLength": 1, - "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", - "type": "string" - }, - "Members": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/MemberSpecification" - }, - "maxItems": 9, - "minItems": 0, - "type": "array" - }, - "Name": { - "maxLength": 100, - "minLength": 1, - "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$", - "type": "string" - }, - "QueryLogStatus": { - "$ref": "#/definitions/CollaborationQueryLogStatus" - }, - "Tags": { - "description": "An arbitrary set of tags (key-value pairs) for this cleanrooms collaboration.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CollaborationIdentifier" - ], - "required": [ - "CreatorDisplayName", - "CreatorMemberAbilities", - "Members", - "Name", - "Description", - "QueryLogStatus" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::CleanRooms::Collaboration" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-membership.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-membership.json deleted file mode 100644 index 35bb82ba7c..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-membership.json +++ /dev/null @@ -1,232 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CollaborationIdentifier" - ], - "definitions": { - "MembershipProtectedQueryOutputConfiguration": { - "additionalProperties": false, - "properties": { - "S3": { - "$ref": "#/definitions/ProtectedQueryS3OutputConfiguration" - } - }, - "required": [ - "S3" - ], - "type": "object" - }, - "MembershipProtectedQueryResultConfiguration": { - "additionalProperties": false, - "properties": { - "OutputConfiguration": { - "$ref": "#/definitions/MembershipProtectedQueryOutputConfiguration" - }, - "RoleArn": { - "maxLength": 512, - "minLength": 32, - "type": "string" - } - }, - "required": [ - "OutputConfiguration" - ], - "type": "object" - }, - "MembershipQueryLogStatus": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "MembershipStatus": { - "enum": [ - "ACTIVE", - "REMOVED", - "COLLABORATION_DELETED" - ], - "type": "string" - }, - "ProtectedQueryS3OutputConfiguration": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "type": "string" - }, - "KeyPrefix": { - "type": "string" - }, - "ResultFormat": { - "$ref": "#/definitions/ResultFormat" - } - }, - "required": [ - "ResultFormat", - "Bucket" - ], - "type": "object" - }, - "ResultFormat": { - "enum": [ - "CSV", - "PARQUET" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Represents an AWS account that is a part of a collaboration", - "handlers": { - "create": { - "permissions": [ - "cleanrooms:CreateMembership", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:PutResourcePolicy", - "logs:CreateLogGroup", - "cleanrooms:GetMembership", - "cleanrooms:ListTagsForResource", - "cleanrooms:TagResource", - "cleanrooms:ListMemberships", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "cleanrooms:DeleteMembership", - "cleanrooms:GetMembership", - "cleanrooms:ListMemberships", - "cleanrooms:ListTagsForResource", - "logs:ListLogDeliveries", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery" - ] - }, - "list": { - "permissions": [ - "cleanrooms:ListMemberships" - ] - }, - "read": { - "permissions": [ - "cleanrooms:GetMembership", - "cleanrooms:ListTagsForResource", - "logs:ListLogDeliveries", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery" - ] - }, - "update": { - "permissions": [ - "cleanrooms:UpdateMembership", - "cleanrooms:GetMembership", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:PutResourcePolicy", - "logs:CreateLogGroup", - "cleanrooms:ListTagsForResource", - "cleanrooms:TagResource", - "cleanrooms:UntagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/MembershipIdentifier" - ], - "properties": { - "Arn": { - "maxLength": 100, - "type": "string" - }, - "CollaborationArn": { - "maxLength": 100, - "type": "string" - }, - "CollaborationCreatorAccountId": { - "maxLength": 12, - "minLength": 12, - "pattern": "^\\d+$", - "type": "string" - }, - "CollaborationIdentifier": { - "maxLength": 36, - "minLength": 36, - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", - "type": "string" - }, - "DefaultResultConfiguration": { - "$ref": "#/definitions/MembershipProtectedQueryResultConfiguration" - }, - "MembershipIdentifier": { - "maxLength": 36, - "minLength": 36, - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", - "type": "string" - }, - "QueryLogStatus": { - "$ref": "#/definitions/MembershipQueryLogStatus" - }, - "Tags": { - "description": "An arbitrary set of tags (key-value pairs) for this cleanrooms membership.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CollaborationArn", - "/properties/CollaborationCreatorAccountId", - "/properties/MembershipIdentifier" - ], - "required": [ - "CollaborationIdentifier", - "QueryLogStatus" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::CleanRooms::Membership" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cloudfront-monitoringsubscription.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cloudfront-monitoringsubscription.json deleted file mode 100644 index f4ca0fdeb7..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cloudfront-monitoringsubscription.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DistributionId" - ], - "definitions": { - "MonitoringSubscription": { - "additionalProperties": false, - "properties": { - "RealtimeMetricsSubscriptionConfig": { - "$ref": "#/definitions/RealtimeMetricsSubscriptionConfig" - } - }, - "type": "object" - }, - "RealtimeMetricsSubscriptionConfig": { - "additionalProperties": false, - "properties": { - "RealtimeMetricsSubscriptionStatus": { - "enum": [ - "Enabled", - "Disabled" - ], - "type": "string" - } - }, - "required": [ - "RealtimeMetricsSubscriptionStatus" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CloudFront::MonitoringSubscription", - "handlers": { - "create": { - "permissions": [ - "cloudfront:CreateMonitoringSubscription" - ] - }, - "delete": { - "permissions": [ - "cloudfront:DeleteMonitoringSubscription" - ] - }, - "read": { - "permissions": [ - "cloudfront:GetMonitoringSubscription" - ] - } - }, - "primaryIdentifier": [ - "/properties/DistributionId" - ], - "properties": { - "DistributionId": { - "type": "string" - }, - "MonitoringSubscription": { - "$ref": "#/definitions/MonitoringSubscription" - } - }, - "required": [ - "DistributionId", - "MonitoringSubscription" - ], - "typeName": "AWS::CloudFront::MonitoringSubscription" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-codedeploy-deploymentgroup.json new file mode 100644 index 0000000000..208990a115 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-codedeploy-deploymentgroup.json @@ -0,0 +1,523 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentGroupName", + "/properties/ApplicationName" + ], + "definitions": { + "Alarm": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AlarmConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/Alarm" + }, + "type": "array", + "uniqueItems": true + }, + "Enabled": { + "type": "boolean" + }, + "IgnorePollAlarmFailure": { + "type": "boolean" + } + }, + "type": "object" + }, + "AutoRollbackConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Events": { + "items": { + "enum": [ + "DEPLOYMENT_FAILURE", + "DEPLOYMENT_STOP_ON_ALARM", + "DEPLOYMENT_STOP_ON_REQUEST" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "BlueGreenDeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "DeploymentReadyOption": { + "$ref": "#/definitions/DeploymentReadyOption" + }, + "GreenFleetProvisioningOption": { + "$ref": "#/definitions/GreenFleetProvisioningOption" + }, + "TerminateBlueInstancesOnDeploymentSuccess": { + "$ref": "#/definitions/BlueInstanceTerminationOption" + } + }, + "type": "object" + }, + "BlueInstanceTerminationOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "TerminationWaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "Deployment": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "IgnoreApplicationStopFailures": { + "type": "boolean" + }, + "Revision": { + "$ref": "#/definitions/RevisionLocation" + } + }, + "required": [ + "Revision" + ], + "type": "object" + }, + "DeploymentReadyOption": { + "additionalProperties": false, + "properties": { + "ActionOnTimeout": { + "type": "string" + }, + "WaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentStyle": { + "additionalProperties": false, + "properties": { + "DeploymentOption": { + "enum": [ + "WITH_TRAFFIC_CONTROL", + "WITHOUT_TRAFFIC_CONTROL" + ], + "type": "string" + }, + "DeploymentType": { + "enum": [ + "IN_PLACE", + "BLUE_GREEN" + ], + "type": "string" + } + }, + "type": "object" + }, + "EC2TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "EC2TagSet": { + "additionalProperties": false, + "properties": { + "Ec2TagSetList": { + "items": { + "$ref": "#/definitions/EC2TagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EC2TagSetListObject": { + "additionalProperties": false, + "properties": { + "Ec2TagGroup": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ECSService": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + } + }, + "required": [ + "ServiceName", + "ClusterName" + ], + "type": "object" + }, + "ELBInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "GitHubLocation": { + "additionalProperties": false, + "properties": { + "CommitId": { + "type": "string" + }, + "Repository": { + "type": "string" + } + }, + "required": [ + "Repository", + "CommitId" + ], + "type": "object" + }, + "GreenFleetProvisioningOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "type": "object" + }, + "LoadBalancerInfo": { + "additionalProperties": false, + "properties": { + "ElbInfoList": { + "items": { + "$ref": "#/definitions/ELBInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupPairInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupPairInfo" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSet": { + "additionalProperties": false, + "properties": { + "OnPremisesTagSetList": { + "items": { + "$ref": "#/definitions/OnPremisesTagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSetListObject": { + "additionalProperties": false, + "properties": { + "OnPremisesTagGroup": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "RevisionLocation": { + "additionalProperties": false, + "properties": { + "GitHubLocation": { + "$ref": "#/definitions/GitHubLocation" + }, + "RevisionType": { + "type": "string" + }, + "S3Location": { + "$ref": "#/definitions/S3Location" + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "BundleType": { + "type": "string" + }, + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupPairInfo": { + "additionalProperties": false, + "properties": { + "ProdTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + }, + "TargetGroups": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TestTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + } + }, + "type": "object" + }, + "TrafficRoute": { + "additionalProperties": false, + "properties": { + "ListenerArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerEvents": { + "items": { + "enum": [ + "DeploymentStart", + "DeploymentSuccess", + "DeploymentFailure", + "DeploymentStop", + "DeploymentRollback", + "DeploymentReady", + "InstanceStart", + "InstanceSuccess", + "InstanceFailure", + "InstanceReady" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "TriggerName": { + "type": "string" + }, + "TriggerTargetArn": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AlarmConfiguration": { + "$ref": "#/definitions/AlarmConfiguration" + }, + "ApplicationName": { + "type": "string" + }, + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AutoRollbackConfiguration" + }, + "AutoScalingGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BlueGreenDeploymentConfiguration": { + "$ref": "#/definitions/BlueGreenDeploymentConfiguration" + }, + "Deployment": { + "$ref": "#/definitions/Deployment" + }, + "DeploymentConfigName": { + "type": "string" + }, + "DeploymentGroupName": { + "type": "string" + }, + "DeploymentStyle": { + "$ref": "#/definitions/DeploymentStyle" + }, + "ECSServices": { + "items": { + "$ref": "#/definitions/ECSService" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagFilters": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagSet": { + "$ref": "#/definitions/EC2TagSet" + }, + "Id": { + "type": "string" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/LoadBalancerInfo" + }, + "OnPremisesInstanceTagFilters": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "OnPremisesTagSet": { + "$ref": "#/definitions/OnPremisesTagSet" + }, + "OutdatedInstancesStrategy": { + "type": "string" + }, + "ServiceRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TerminationHookEnabled": { + "type": "boolean" + }, + "TriggerConfigurations": { + "items": { + "$ref": "#/definitions/TriggerConfig" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "ServiceRoleArn" + ], + "typeName": "AWS::CodeDeploy::DeploymentGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-connect-integrationassociation.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-connect-integrationassociation.json deleted file mode 100644 index aee475cb1b..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-connect-integrationassociation.json +++ /dev/null @@ -1,147 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/InstanceId", - "/properties/IntegrationArn", - "/properties/IntegrationType" - ], - "definitions": { - "InstanceId": { - "description": "Amazon Connect instance identifier", - "maxLength": 100, - "minLength": 1, - "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", - "type": "string" - }, - "IntegrationArn": { - "description": "ARN of Integration being associated with the instance", - "maxLength": 140, - "minLength": 1, - "type": "string" - }, - "IntegrationAssociationId": { - "description": "Identifier of the association with Connect Instance", - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9])*$", - "type": "string" - }, - "IntegrationType": { - "description": "Specifies the integration type to be associated with the instance", - "enum": [ - "LEX_BOT", - "LAMBDA_FUNCTION", - "APPLICATION" - ], - "type": "string" - } - }, - "description": "Resource Type definition for AWS::Connect::IntegrationAssociation", - "handlers": { - "create": { - "permissions": [ - "connect:DescribeInstance", - "ds:DescribeDirectories", - "app-integrations:CreateEventIntegrationAssociation", - "mobiletargeting:GetApp", - "cases:GetDomain", - "wisdom:GetAssistant", - "wisdom:GetKnowledgeBase", - "wisdom:TagResource", - "voiceid:DescribeDomain", - "events:PutTargets", - "events:PutRule", - "connect:AssociateBot", - "connect:AssociateLambdaFunction", - "connect:CreateIntegrationAssociation", - "connect:ListBots", - "connect:ListLambdaFunctions", - "connect:ListIntegrationAssociations", - "lambda:addPermission", - "lex:GetBot", - "lex:DescribeBotAlias", - "lex:CreateResourcePolicy", - "lex:UpdateResourcePolicy", - "lex:CreateResourcePolicyStatement", - "lambda:AddPermission", - "app-integrations:GetApplication", - "iam:AttachRolePolicy", - "iam:CreateServiceLinkedRole", - "iam:GetRolePolicy", - "iam:PutRolePolicy" - ] - }, - "delete": { - "permissions": [ - "connect:DescribeInstance", - "ds:DescribeDirectories", - "app-integrations:DeleteEventIntegrationAssociation", - "events:ListTargetsByRule", - "events:RemoveTargets", - "events:DeleteRule", - "connect:DisassociateBot", - "connect:DisassociateLambdaFunction", - "connect:DeleteIntegrationAssociation", - "connect:ListBots", - "connect:ListLambdaFunctions", - "connect:ListIntegrationAssociations", - "lex:DeleteResourcePolicy", - "lex:DeleteResourcePolicyStatement", - "lambda:RemovePermission", - "iam:GetRolePolicy", - "iam:DeleteRolePolicy", - "iam:PutRolePolicy" - ] - }, - "list": { - "permissions": [ - "connect:ListBots", - "connect:ListLambdaFunctions", - "connect:ListIntegrationAssociations" - ] - }, - "read": { - "permissions": [ - "connect:ListBots", - "connect:ListLambdaFunctions", - "connect:ListIntegrationAssociations" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/InstanceId", - "/properties/IntegrationType", - "/properties/IntegrationArn" - ], - "properties": { - "InstanceId": { - "$ref": "#/definitions/InstanceId" - }, - "IntegrationArn": { - "$ref": "#/definitions/IntegrationArn" - }, - "IntegrationAssociationId": { - "$ref": "#/definitions/IntegrationAssociationId" - }, - "IntegrationType": { - "$ref": "#/definitions/IntegrationType" - } - }, - "readOnlyProperties": [ - "/properties/IntegrationAssociationId" - ], - "required": [ - "InstanceId", - "IntegrationType", - "IntegrationArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::Connect::IntegrationAssociation" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-connect-user.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-connect-user.json new file mode 100644 index 0000000000..b949608f4f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-connect-user.json @@ -0,0 +1,241 @@ +{ + "additionalProperties": false, + "definitions": { + "AfterContactWorkTimeLimit": { + "description": "The After Call Work (ACW) timeout setting, in seconds.", + "minimum": 0, + "type": "integer" + }, + "AutoAccept": { + "description": "The Auto accept setting.", + "type": "boolean" + }, + "DeskPhoneNumber": { + "description": "The phone number for the user's desk phone.", + "type": "string" + }, + "Email": { + "description": "The email address. If you are using SAML for identity management and include this parameter, an error is returned.", + "type": "string" + }, + "FirstName": { + "description": "The first name. This is required if you are using Amazon Connect or SAML for identity management.", + "type": "string" + }, + "LastName": { + "description": "The last name. This is required if you are using Amazon Connect or SAML for identity management.", + "type": "string" + }, + "Mobile": { + "description": "The mobile phone number.", + "pattern": "^\\+[1-9]\\d{1,14}$", + "type": "string" + }, + "PhoneType": { + "description": "The phone type.", + "enum": [ + "SOFT_PHONE", + "DESK_PHONE" + ], + "type": "string" + }, + "SecondaryEmail": { + "description": "The secondary email address. If you provide a secondary email, the user receives email notifications -- other than password reset notifications -- to this email address instead of to their primary email address.", + "pattern": "(?=^.{0,265}$)[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,63}", + "type": "string" + }, + "SecurityProfileArn": { + "description": "The identifier of the security profile for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/security-profile/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is maximum of 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserIdentityInfo": { + "additionalProperties": false, + "description": "Contains information about the identity of a user.", + "properties": { + "Email": { + "$ref": "#/definitions/Email" + }, + "FirstName": { + "$ref": "#/definitions/FirstName" + }, + "LastName": { + "$ref": "#/definitions/LastName" + }, + "Mobile": { + "$ref": "#/definitions/Mobile" + }, + "SecondaryEmail": { + "$ref": "#/definitions/SecondaryEmail" + } + }, + "type": "object" + }, + "UserPhoneConfig": { + "additionalProperties": false, + "description": "Contains information about the phone configuration settings for a user.", + "properties": { + "AfterContactWorkTimeLimit": { + "$ref": "#/definitions/AfterContactWorkTimeLimit" + }, + "AutoAccept": { + "$ref": "#/definitions/AutoAccept" + }, + "DeskPhoneNumber": { + "$ref": "#/definitions/DeskPhoneNumber" + }, + "PhoneType": { + "$ref": "#/definitions/PhoneType" + } + }, + "required": [ + "PhoneType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Connect::User", + "handlers": { + "create": { + "permissions": [ + "connect:CreateUser", + "connect:TagResource", + "connect:AssociateUserProficiencies" + ] + }, + "delete": { + "permissions": [ + "connect:DeleteUser", + "connect:UntagResource" + ] + }, + "read": { + "permissions": [ + "connect:DescribeUser", + "connect:ListUserProficiencies" + ] + }, + "update": { + "permissions": [ + "connect:UpdateUserIdentityInfo", + "connect:UpdateUserPhoneConfig", + "connect:UpdateUserRoutingProfile", + "connect:UpdateUserSecurityProfiles", + "connect:UpdateUserHierarchy", + "connect:TagResource", + "connect:UntagResource", + "connect:AssociateUserProficiencies", + "connect:DisassociateUserProficiencies", + "connect:UpdateUserProficiencies" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserArn" + ], + "properties": { + "DirectoryUserId": { + "description": "The identifier of the user account in the directory used for identity management.", + "type": "string" + }, + "HierarchyGroupArn": { + "description": "The identifier of the hierarchy group for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group/[-a-zA-Z0-9]*$", + "type": "string" + }, + "IdentityInfo": { + "$ref": "#/definitions/UserIdentityInfo", + "description": "The information about the identity of the user." + }, + "InstanceArn": { + "description": "The identifier of the Amazon Connect instance.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Password": { + "description": "The password for the user account. A password is required if you are using Amazon Connect for identity management. Otherwise, it is an error to include a password.", + "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d\\S]{8,64}$", + "type": "string" + }, + "PhoneConfig": { + "$ref": "#/definitions/UserPhoneConfig", + "description": "The phone settings for the user." + }, + "RoutingProfileArn": { + "description": "The identifier of the routing profile for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/routing-profile/[-a-zA-Z0-9]*$", + "type": "string" + }, + "SecurityProfileArns": { + "description": "One or more security profile arns for the user", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SecurityProfileArn" + }, + "maxItems": 10, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "description": "One or more tags.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserArn": { + "description": "The Amazon Resource Name (ARN) for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Username": { + "description": "The user name for the account.", + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\_\\-\\.\\@]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/UserArn" + ], + "required": [ + "InstanceArn", + "PhoneConfig", + "RoutingProfileArn", + "SecurityProfileArns", + "Username" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "typeName": "AWS::Connect::User", + "writeOnlyProperties": [ + "/properties/Password" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-dms-replicationconfig.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-dms-replicationconfig.json deleted file mode 100644 index 15358362ce..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-dms-replicationconfig.json +++ /dev/null @@ -1,194 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicationConfigIdentifier" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ResourceIdentifier" - ], - "definitions": { - "ComputeConfig": { - "additionalProperties": false, - "description": "Configuration parameters for provisioning a AWS DMS Serverless replication", - "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, - "description": "

The key or keys of the key-value pairs for the resource tag or tags assigned to the\n resource.

", - "properties": { - "Key": { - "description": "

Tag key.

", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "

Tag value.

", - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "A replication configuration that you later provide to configure and start a AWS DMS Serverless replication", - "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:RemoveTagsToResource", - "dms:ListTagsForResource", - "iam:CreateServiceLinkedRole", - "iam:AttachRolePolicy", - "iam:PutRolePolicy", - "iam:UpdateRoleDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicationConfigArn" - ], - "properties": { - "ComputeConfig": { - "$ref": "#/definitions/ComputeConfig" - }, - "ReplicationConfigArn": { - "description": "The Amazon Resource Name (ARN) of the Replication Config", - "type": "string" - }, - "ReplicationConfigIdentifier": { - "description": "A unique identifier of replication configuration", - "type": "string" - }, - "ReplicationSettings": { - "description": "JSON settings for Servereless replications that are provisioned using this replication configuration", - "type": "object" - }, - "ReplicationType": { - "description": "The type of AWS DMS Serverless replication to provision using this replication configuration", - "enum": [ - "full-load", - "full-load-and-cdc", - "cdc" - ], - "type": "string" - }, - "ResourceIdentifier": { - "description": "A unique value or name that you get set for a given resource that can be used to construct an Amazon Resource Name (ARN) for that resource", - "type": "string" - }, - "SourceEndpointArn": { - "description": "The Amazon Resource Name (ARN) of the source endpoint for this AWS DMS Serverless replication configuration", - "type": "string" - }, - "SupplementalSettings": { - "description": "JSON settings for specifying supplemental data", - "type": "object" - }, - "TableMappings": { - "description": "JSON table mappings for AWS DMS Serverless replications that are provisioned using this replication configuration", - "type": "object" - }, - "Tags": { - "description": "

Contains a map of the key-value pairs for the resource tag or tags assigned to the dataset.

", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 1, - "type": "array" - }, - "TargetEndpointArn": { - "description": "The Amazon Resource Name (ARN) of the target endpoint for this AWS DMS Serverless replication configuration", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/ReplicationConfigArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-dms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::DMS::ReplicationConfig" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-emr-cluster.json new file mode 100644 index 0000000000..7ce37fccb6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-emr-cluster.json @@ -0,0 +1,858 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Steps", + "/properties/EbsRootVolumeSize", + "/properties/SecurityConfiguration", + "/properties/ScaleDownBehavior", + "/properties/Configurations", + "/properties/ReleaseLabel", + "/properties/BootstrapActions", + "/properties/EbsRootVolumeIops", + "/properties/KerberosAttributes", + "/properties/ServiceRole", + "/properties/LogEncryptionKmsKeyId", + "/properties/Name", + "/properties/EbsRootVolumeThroughput", + "/properties/JobFlowRole", + "/properties/AdditionalInfo", + "/properties/LogUri", + "/properties/CustomAmiId", + "/properties/PlacementGroupConfigs", + "/properties/OSReleaseLabel", + "/properties/AutoScalingRole", + "/properties/Applications" + ], + "definitions": { + "Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ScalingRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/ScriptBootstrapActionConfig" + } + }, + "required": [ + "ScriptBootstrapAction", + "Name" + ], + "type": "object" + }, + "CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "EvaluationPeriods": { + "type": "integer" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "integer" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "ComparisonOperator", + "Period", + "Threshold" + ], + "type": "object" + }, + "ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "integer" + }, + "MaximumCoreCapacityUnits": { + "type": "integer" + }, + "MaximumOnDemandCapacityUnits": { + "type": "integer" + }, + "MinimumCapacityUnits": { + "type": "integer" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "UnitType", + "MaximumCapacityUnits", + "MinimumCapacityUnits" + ], + "type": "object" + }, + "Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "integer" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/EbsBlockDeviceConfig" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/KeyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/InstanceTypeConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchSpecifications": { + "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "integer" + }, + "TargetSpotCapacity": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/OnDemandProvisioningSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/SpotProvisioningSpecification" + } + }, + "type": "object" + }, + "InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceType": { + "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", + "type": "string" + }, + "WeightedCapacity": { + "type": "integer" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/ComputeLimits" + } + }, + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "PlacementGroupConfig": { + "additionalProperties": false, + "properties": { + "InstanceRole": { + "type": "string" + }, + "PlacementStrategy": { + "type": "string" + } + }, + "required": [ + "InstanceRole" + ], + "type": "object" + }, + "PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/ScalingTrigger" + } + }, + "required": [ + "Action", + "Trigger", + "Name" + ], + "type": "object" + }, + "ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BlockDurationMinutes": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "integer" + } + }, + "required": [ + "TimeoutDurationMinutes", + "TimeoutAction" + ], + "type": "object" + }, + "StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "integer" + }, + "SizeInGB": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EMR::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/Application" + }, + "type": "array", + "uniqueItems": true + }, + "AutoScalingRole": { + "type": "string" + }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AutoTerminationPolicy" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/BootstrapActionConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeIops": { + "type": "integer" + }, + "EbsRootVolumeSize": { + "type": "integer" + }, + "EbsRootVolumeThroughput": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Instances": { + "$ref": "#/definitions/JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/KerberosAttributes" + }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, + "LogUri": { + "type": "string" + }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/ManagedScalingPolicy" + }, + "MasterPublicDNS": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OSReleaseLabel": { + "type": "string" + }, + "PlacementGroupConfigs": { + "items": { + "$ref": "#/definitions/PlacementGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "StepConcurrencyLevel": { + "type": "integer" + }, + "Steps": { + "items": { + "$ref": "#/definitions/StepConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/MasterPublicDNS" + ], + "required": [ + "Instances", + "ServiceRole", + "JobFlowRole", + "Name" + ], + "typeName": "AWS::EMR::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-eventschemas-discoverer.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-eventschemas-discoverer.json deleted file mode 100644 index 791d433995..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-eventschemas-discoverer.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SourceArn" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EventSchemas::Discoverer", - "primaryIdentifier": [ - "/properties/DiscovererId" - ], - "properties": { - "CrossAccount": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DiscovererArn": { - "type": "string" - }, - "DiscovererId": { - "type": "string" - }, - "SourceArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/DiscovererId", - "/properties/DiscovererArn" - ], - "required": [ - "SourceArn" - ], - "typeName": "AWS::EventSchemas::Discoverer" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-imagebuilder-image.json new file mode 100644 index 0000000000..5582329923 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-imagebuilder-image.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ImageRecipeArn", + "/properties/ContainerRecipeArn", + "/properties/InfrastructureConfigurationArn", + "/properties/DistributionConfigurationArn", + "/properties/ImageTestsConfiguration", + "/properties/ImageScanningConfiguration", + "/properties/EnhancedImageMetadataEnabled", + "/properties/Tags" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Contains settings for Image Builder image resource and container image scans.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "The image tests configuration used when creating this image.", + "properties": { + "ImageTestsEnabled": { + "description": "ImageTestsEnabled", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "TimeoutMinutes", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::ImageBuilder::Image", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:GetImage", + "imagebuilder:CreateImage", + "imagebuilder:TagResource", + "inspector2:BatchGetAccountStatus" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "imagebuilder:GetImage", + "imagebuilder:DeleteImage", + "imagebuilder:UnTagResource", + "imagebuilder:CancelImageCreation" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListImages" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImage" + ] + } + }, + "oneOf": [ + { + "required": [ + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ImageId": { + "description": "The AMI ID of the EC2 AMI in current region.", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration used when creating this image." + }, + "ImageUri": { + "description": "URI for containers created in current Region with default ECR image tag", + "type": "string" + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", + "type": "string" + }, + "Name": { + "description": "The name of the image.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the image.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Name", + "/properties/ImageId", + "/properties/ImageUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Image" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-imagebuilder-imagepipeline.json new file mode 100644 index 0000000000..5b70e0ff38 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-imagebuilder-imagepipeline.json @@ -0,0 +1,213 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "Image tests configuration.", + "properties": { + "ImageTestsEnabled": { + "description": "Defines if tests should be executed when building this image.", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "The maximum time in minutes that tests are permitted to run.", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "description": "The schedule of the image pipeline.", + "properties": { + "PipelineExecutionStartCondition": { + "description": "The condition configures when the pipeline should trigger a new image build.", + "enum": [ + "EXPRESSION_MATCH_ONLY", + "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + ], + "type": "string" + }, + "ScheduleExpression": { + "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:CreateImagePipeline", + "imagebuilder:GetWorkflow", + "inspector2:BatchGetAccountStatus" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:UnTagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:DeleteImagePipeline" + ] + }, + "list": { + "permissions": [ + "imagebuilder:ListImagePipelines" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImagePipeline" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "imagebuilder:GetImagePipeline", + "imagebuilder:UpdateImagePipeline", + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Name", + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "Name", + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image pipeline.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "Description": { + "description": "The description of the image pipeline.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration of the image pipeline." + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", + "type": "string" + }, + "Name": { + "description": "The name of the image pipeline.", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule", + "description": "The schedule of the image pipeline." + }, + "Status": { + "description": "The status of the image pipeline.", + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags of this image pipeline.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::ImagePipeline" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-medialive-channel.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-medialive-channel.json deleted file mode 100644 index d5a7dd8e34..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-medialive-channel.json +++ /dev/null @@ -1,3160 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Vpc" - ], - "definitions": { - "AacSettings": { - "additionalProperties": false, - "properties": { - "Bitrate": { - "type": "number" - }, - "CodingMode": { - "type": "string" - }, - "InputType": { - "type": "string" - }, - "Profile": { - "type": "string" - }, - "RateControlMode": { - "type": "string" - }, - "RawFormat": { - "type": "string" - }, - "SampleRate": { - "type": "number" - }, - "Spec": { - "type": "string" - }, - "VbrQuality": { - "type": "string" - } - }, - "type": "object" - }, - "Ac3Settings": { - "additionalProperties": false, - "properties": { - "AttenuationControl": { - "type": "string" - }, - "Bitrate": { - "type": "number" - }, - "BitstreamMode": { - "type": "string" - }, - "CodingMode": { - "type": "string" - }, - "Dialnorm": { - "type": "integer" - }, - "DrcProfile": { - "type": "string" - }, - "LfeFilter": { - "type": "string" - }, - "MetadataControl": { - "type": "string" - } - }, - "type": "object" - }, - "AncillarySourceSettings": { - "additionalProperties": false, - "properties": { - "SourceAncillaryChannelNumber": { - "type": "integer" - } - }, - "type": "object" - }, - "ArchiveCdnSettings": { - "additionalProperties": false, - "properties": { - "ArchiveS3Settings": { - "$ref": "#/definitions/ArchiveS3Settings" - } - }, - "type": "object" - }, - "ArchiveContainerSettings": { - "additionalProperties": false, - "properties": { - "M2tsSettings": { - "$ref": "#/definitions/M2tsSettings" - }, - "RawSettings": { - "$ref": "#/definitions/RawSettings" - } - }, - "type": "object" - }, - "ArchiveGroupSettings": { - "additionalProperties": false, - "properties": { - "ArchiveCdnSettings": { - "$ref": "#/definitions/ArchiveCdnSettings" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "RolloverInterval": { - "type": "integer" - } - }, - "type": "object" - }, - "ArchiveOutputSettings": { - "additionalProperties": false, - "properties": { - "ContainerSettings": { - "$ref": "#/definitions/ArchiveContainerSettings" - }, - "Extension": { - "type": "string" - }, - "NameModifier": { - "type": "string" - } - }, - "type": "object" - }, - "ArchiveS3Settings": { - "additionalProperties": false, - "properties": { - "CannedAcl": { - "type": "string" - } - }, - "type": "object" - }, - "AribDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "AribSourceSettings": { - "additionalProperties": false, - "type": "object" - }, - "AudioChannelMapping": { - "additionalProperties": false, - "properties": { - "InputChannelLevels": { - "items": { - "$ref": "#/definitions/InputChannelLevel" - }, - "type": "array", - "uniqueItems": false - }, - "OutputChannel": { - "type": "integer" - } - }, - "type": "object" - }, - "AudioCodecSettings": { - "additionalProperties": false, - "properties": { - "AacSettings": { - "$ref": "#/definitions/AacSettings" - }, - "Ac3Settings": { - "$ref": "#/definitions/Ac3Settings" - }, - "Eac3AtmosSettings": { - "$ref": "#/definitions/Eac3AtmosSettings" - }, - "Eac3Settings": { - "$ref": "#/definitions/Eac3Settings" - }, - "Mp2Settings": { - "$ref": "#/definitions/Mp2Settings" - }, - "PassThroughSettings": { - "$ref": "#/definitions/PassThroughSettings" - }, - "WavSettings": { - "$ref": "#/definitions/WavSettings" - } - }, - "type": "object" - }, - "AudioDescription": { - "additionalProperties": false, - "properties": { - "AudioNormalizationSettings": { - "$ref": "#/definitions/AudioNormalizationSettings" - }, - "AudioSelectorName": { - "type": "string" - }, - "AudioType": { - "type": "string" - }, - "AudioTypeControl": { - "type": "string" - }, - "AudioWatermarkingSettings": { - "$ref": "#/definitions/AudioWatermarkSettings" - }, - "CodecSettings": { - "$ref": "#/definitions/AudioCodecSettings" - }, - "LanguageCode": { - "type": "string" - }, - "LanguageCodeControl": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "RemixSettings": { - "$ref": "#/definitions/RemixSettings" - }, - "StreamName": { - "type": "string" - } - }, - "type": "object" - }, - "AudioDolbyEDecode": { - "additionalProperties": false, - "properties": { - "ProgramSelection": { - "type": "string" - } - }, - "type": "object" - }, - "AudioHlsRenditionSelection": { - "additionalProperties": false, - "properties": { - "GroupId": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AudioLanguageSelection": { - "additionalProperties": false, - "properties": { - "LanguageCode": { - "type": "string" - }, - "LanguageSelectionPolicy": { - "type": "string" - } - }, - "type": "object" - }, - "AudioNormalizationSettings": { - "additionalProperties": false, - "properties": { - "Algorithm": { - "type": "string" - }, - "AlgorithmControl": { - "type": "string" - }, - "TargetLkfs": { - "type": "number" - } - }, - "type": "object" - }, - "AudioOnlyHlsSettings": { - "additionalProperties": false, - "properties": { - "AudioGroupId": { - "type": "string" - }, - "AudioOnlyImage": { - "$ref": "#/definitions/InputLocation" - }, - "AudioTrackType": { - "type": "string" - }, - "SegmentType": { - "type": "string" - } - }, - "type": "object" - }, - "AudioPidSelection": { - "additionalProperties": false, - "properties": { - "Pid": { - "type": "integer" - } - }, - "type": "object" - }, - "AudioSelector": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "SelectorSettings": { - "$ref": "#/definitions/AudioSelectorSettings" - } - }, - "type": "object" - }, - "AudioSelectorSettings": { - "additionalProperties": false, - "properties": { - "AudioHlsRenditionSelection": { - "$ref": "#/definitions/AudioHlsRenditionSelection" - }, - "AudioLanguageSelection": { - "$ref": "#/definitions/AudioLanguageSelection" - }, - "AudioPidSelection": { - "$ref": "#/definitions/AudioPidSelection" - }, - "AudioTrackSelection": { - "$ref": "#/definitions/AudioTrackSelection" - } - }, - "type": "object" - }, - "AudioSilenceFailoverSettings": { - "additionalProperties": false, - "properties": { - "AudioSelectorName": { - "type": "string" - }, - "AudioSilenceThresholdMsec": { - "type": "integer" - } - }, - "type": "object" - }, - "AudioTrack": { - "additionalProperties": false, - "properties": { - "Track": { - "type": "integer" - } - }, - "type": "object" - }, - "AudioTrackSelection": { - "additionalProperties": false, - "properties": { - "DolbyEDecode": { - "$ref": "#/definitions/AudioDolbyEDecode" - }, - "Tracks": { - "items": { - "$ref": "#/definitions/AudioTrack" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "AudioWatermarkSettings": { - "additionalProperties": false, - "properties": { - "NielsenWatermarksSettings": { - "$ref": "#/definitions/NielsenWatermarksSettings" - } - }, - "type": "object" - }, - "AutomaticInputFailoverSettings": { - "additionalProperties": false, - "properties": { - "ErrorClearTimeMsec": { - "type": "integer" - }, - "FailoverConditions": { - "items": { - "$ref": "#/definitions/FailoverCondition" - }, - "type": "array", - "uniqueItems": false - }, - "InputPreference": { - "type": "string" - }, - "SecondaryInputId": { - "type": "string" - } - }, - "type": "object" - }, - "AvailBlanking": { - "additionalProperties": false, - "properties": { - "AvailBlankingImage": { - "$ref": "#/definitions/InputLocation" - }, - "State": { - "type": "string" - } - }, - "type": "object" - }, - "AvailConfiguration": { - "additionalProperties": false, - "properties": { - "AvailSettings": { - "$ref": "#/definitions/AvailSettings" - } - }, - "type": "object" - }, - "AvailSettings": { - "additionalProperties": false, - "properties": { - "Esam": { - "$ref": "#/definitions/Esam" - }, - "Scte35SpliceInsert": { - "$ref": "#/definitions/Scte35SpliceInsert" - }, - "Scte35TimeSignalApos": { - "$ref": "#/definitions/Scte35TimeSignalApos" - } - }, - "type": "object" - }, - "BlackoutSlate": { - "additionalProperties": false, - "properties": { - "BlackoutSlateImage": { - "$ref": "#/definitions/InputLocation" - }, - "NetworkEndBlackout": { - "type": "string" - }, - "NetworkEndBlackoutImage": { - "$ref": "#/definitions/InputLocation" - }, - "NetworkId": { - "type": "string" - }, - "State": { - "type": "string" - } - }, - "type": "object" - }, - "BurnInDestinationSettings": { - "additionalProperties": false, - "properties": { - "Alignment": { - "type": "string" - }, - "BackgroundColor": { - "type": "string" - }, - "BackgroundOpacity": { - "type": "integer" - }, - "Font": { - "$ref": "#/definitions/InputLocation" - }, - "FontColor": { - "type": "string" - }, - "FontOpacity": { - "type": "integer" - }, - "FontResolution": { - "type": "integer" - }, - "FontSize": { - "type": "string" - }, - "OutlineColor": { - "type": "string" - }, - "OutlineSize": { - "type": "integer" - }, - "ShadowColor": { - "type": "string" - }, - "ShadowOpacity": { - "type": "integer" - }, - "ShadowXOffset": { - "type": "integer" - }, - "ShadowYOffset": { - "type": "integer" - }, - "TeletextGridControl": { - "type": "string" - }, - "XPosition": { - "type": "integer" - }, - "YPosition": { - "type": "integer" - } - }, - "type": "object" - }, - "CaptionDescription": { - "additionalProperties": false, - "properties": { - "Accessibility": { - "type": "string" - }, - "CaptionSelectorName": { - "type": "string" - }, - "DestinationSettings": { - "$ref": "#/definitions/CaptionDestinationSettings" - }, - "LanguageCode": { - "type": "string" - }, - "LanguageDescription": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "CaptionDestinationSettings": { - "additionalProperties": false, - "properties": { - "AribDestinationSettings": { - "$ref": "#/definitions/AribDestinationSettings" - }, - "BurnInDestinationSettings": { - "$ref": "#/definitions/BurnInDestinationSettings" - }, - "DvbSubDestinationSettings": { - "$ref": "#/definitions/DvbSubDestinationSettings" - }, - "EbuTtDDestinationSettings": { - "$ref": "#/definitions/EbuTtDDestinationSettings" - }, - "EmbeddedDestinationSettings": { - "$ref": "#/definitions/EmbeddedDestinationSettings" - }, - "EmbeddedPlusScte20DestinationSettings": { - "$ref": "#/definitions/EmbeddedPlusScte20DestinationSettings" - }, - "RtmpCaptionInfoDestinationSettings": { - "$ref": "#/definitions/RtmpCaptionInfoDestinationSettings" - }, - "Scte20PlusEmbeddedDestinationSettings": { - "$ref": "#/definitions/Scte20PlusEmbeddedDestinationSettings" - }, - "Scte27DestinationSettings": { - "$ref": "#/definitions/Scte27DestinationSettings" - }, - "SmpteTtDestinationSettings": { - "$ref": "#/definitions/SmpteTtDestinationSettings" - }, - "TeletextDestinationSettings": { - "$ref": "#/definitions/TeletextDestinationSettings" - }, - "TtmlDestinationSettings": { - "$ref": "#/definitions/TtmlDestinationSettings" - }, - "WebvttDestinationSettings": { - "$ref": "#/definitions/WebvttDestinationSettings" - } - }, - "type": "object" - }, - "CaptionLanguageMapping": { - "additionalProperties": false, - "properties": { - "CaptionChannel": { - "type": "integer" - }, - "LanguageCode": { - "type": "string" - }, - "LanguageDescription": { - "type": "string" - } - }, - "type": "object" - }, - "CaptionRectangle": { - "additionalProperties": false, - "properties": { - "Height": { - "type": "number" - }, - "LeftOffset": { - "type": "number" - }, - "TopOffset": { - "type": "number" - }, - "Width": { - "type": "number" - } - }, - "type": "object" - }, - "CaptionSelector": { - "additionalProperties": false, - "properties": { - "LanguageCode": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "SelectorSettings": { - "$ref": "#/definitions/CaptionSelectorSettings" - } - }, - "type": "object" - }, - "CaptionSelectorSettings": { - "additionalProperties": false, - "properties": { - "AncillarySourceSettings": { - "$ref": "#/definitions/AncillarySourceSettings" - }, - "AribSourceSettings": { - "$ref": "#/definitions/AribSourceSettings" - }, - "DvbSubSourceSettings": { - "$ref": "#/definitions/DvbSubSourceSettings" - }, - "EmbeddedSourceSettings": { - "$ref": "#/definitions/EmbeddedSourceSettings" - }, - "Scte20SourceSettings": { - "$ref": "#/definitions/Scte20SourceSettings" - }, - "Scte27SourceSettings": { - "$ref": "#/definitions/Scte27SourceSettings" - }, - "TeletextSourceSettings": { - "$ref": "#/definitions/TeletextSourceSettings" - } - }, - "type": "object" - }, - "CdiInputSpecification": { - "additionalProperties": false, - "properties": { - "Resolution": { - "type": "string" - } - }, - "type": "object" - }, - "ColorSpacePassthroughSettings": { - "additionalProperties": false, - "type": "object" - }, - "DolbyVision81Settings": { - "additionalProperties": false, - "type": "object" - }, - "DvbNitSettings": { - "additionalProperties": false, - "properties": { - "NetworkId": { - "type": "integer" - }, - "NetworkName": { - "type": "string" - }, - "RepInterval": { - "type": "integer" - } - }, - "type": "object" - }, - "DvbSdtSettings": { - "additionalProperties": false, - "properties": { - "OutputSdt": { - "type": "string" - }, - "RepInterval": { - "type": "integer" - }, - "ServiceName": { - "type": "string" - }, - "ServiceProviderName": { - "type": "string" - } - }, - "type": "object" - }, - "DvbSubDestinationSettings": { - "additionalProperties": false, - "properties": { - "Alignment": { - "type": "string" - }, - "BackgroundColor": { - "type": "string" - }, - "BackgroundOpacity": { - "type": "integer" - }, - "Font": { - "$ref": "#/definitions/InputLocation" - }, - "FontColor": { - "type": "string" - }, - "FontOpacity": { - "type": "integer" - }, - "FontResolution": { - "type": "integer" - }, - "FontSize": { - "type": "string" - }, - "OutlineColor": { - "type": "string" - }, - "OutlineSize": { - "type": "integer" - }, - "ShadowColor": { - "type": "string" - }, - "ShadowOpacity": { - "type": "integer" - }, - "ShadowXOffset": { - "type": "integer" - }, - "ShadowYOffset": { - "type": "integer" - }, - "TeletextGridControl": { - "type": "string" - }, - "XPosition": { - "type": "integer" - }, - "YPosition": { - "type": "integer" - } - }, - "type": "object" - }, - "DvbSubSourceSettings": { - "additionalProperties": false, - "properties": { - "OcrLanguage": { - "type": "string" - }, - "Pid": { - "type": "integer" - } - }, - "type": "object" - }, - "DvbTdtSettings": { - "additionalProperties": false, - "properties": { - "RepInterval": { - "type": "integer" - } - }, - "type": "object" - }, - "Eac3AtmosSettings": { - "additionalProperties": false, - "properties": { - "Bitrate": { - "type": "number" - }, - "CodingMode": { - "type": "string" - }, - "Dialnorm": { - "type": "integer" - }, - "DrcLine": { - "type": "string" - }, - "DrcRf": { - "type": "string" - }, - "HeightTrim": { - "type": "number" - }, - "SurroundTrim": { - "type": "number" - } - }, - "type": "object" - }, - "Eac3Settings": { - "additionalProperties": false, - "properties": { - "AttenuationControl": { - "type": "string" - }, - "Bitrate": { - "type": "number" - }, - "BitstreamMode": { - "type": "string" - }, - "CodingMode": { - "type": "string" - }, - "DcFilter": { - "type": "string" - }, - "Dialnorm": { - "type": "integer" - }, - "DrcLine": { - "type": "string" - }, - "DrcRf": { - "type": "string" - }, - "LfeControl": { - "type": "string" - }, - "LfeFilter": { - "type": "string" - }, - "LoRoCenterMixLevel": { - "type": "number" - }, - "LoRoSurroundMixLevel": { - "type": "number" - }, - "LtRtCenterMixLevel": { - "type": "number" - }, - "LtRtSurroundMixLevel": { - "type": "number" - }, - "MetadataControl": { - "type": "string" - }, - "PassthroughControl": { - "type": "string" - }, - "PhaseControl": { - "type": "string" - }, - "StereoDownmix": { - "type": "string" - }, - "SurroundExMode": { - "type": "string" - }, - "SurroundMode": { - "type": "string" - } - }, - "type": "object" - }, - "EbuTtDDestinationSettings": { - "additionalProperties": false, - "properties": { - "CopyrightHolder": { - "type": "string" - }, - "FillLineGap": { - "type": "string" - }, - "FontFamily": { - "type": "string" - }, - "StyleControl": { - "type": "string" - } - }, - "type": "object" - }, - "EmbeddedDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "EmbeddedPlusScte20DestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "EmbeddedSourceSettings": { - "additionalProperties": false, - "properties": { - "Convert608To708": { - "type": "string" - }, - "Scte20Detection": { - "type": "string" - }, - "Source608ChannelNumber": { - "type": "integer" - }, - "Source608TrackNumber": { - "type": "integer" - } - }, - "type": "object" - }, - "EncoderSettings": { - "additionalProperties": false, - "properties": { - "AudioDescriptions": { - "items": { - "$ref": "#/definitions/AudioDescription" - }, - "type": "array", - "uniqueItems": false - }, - "AvailBlanking": { - "$ref": "#/definitions/AvailBlanking" - }, - "AvailConfiguration": { - "$ref": "#/definitions/AvailConfiguration" - }, - "BlackoutSlate": { - "$ref": "#/definitions/BlackoutSlate" - }, - "CaptionDescriptions": { - "items": { - "$ref": "#/definitions/CaptionDescription" - }, - "type": "array", - "uniqueItems": false - }, - "FeatureActivations": { - "$ref": "#/definitions/FeatureActivations" - }, - "GlobalConfiguration": { - "$ref": "#/definitions/GlobalConfiguration" - }, - "MotionGraphicsConfiguration": { - "$ref": "#/definitions/MotionGraphicsConfiguration" - }, - "NielsenConfiguration": { - "$ref": "#/definitions/NielsenConfiguration" - }, - "OutputGroups": { - "items": { - "$ref": "#/definitions/OutputGroup" - }, - "type": "array", - "uniqueItems": false - }, - "ThumbnailConfiguration": { - "$ref": "#/definitions/ThumbnailConfiguration" - }, - "TimecodeConfig": { - "$ref": "#/definitions/TimecodeConfig" - }, - "VideoDescriptions": { - "items": { - "$ref": "#/definitions/VideoDescription" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "EpochLockingSettings": { - "additionalProperties": false, - "properties": { - "CustomEpoch": { - "type": "string" - }, - "JamSyncTime": { - "type": "string" - } - }, - "type": "object" - }, - "Esam": { - "additionalProperties": false, - "properties": { - "AcquisitionPointId": { - "type": "string" - }, - "AdAvailOffset": { - "type": "integer" - }, - "PasswordParam": { - "type": "string" - }, - "PoisEndpoint": { - "type": "string" - }, - "Username": { - "type": "string" - }, - "ZoneIdentity": { - "type": "string" - } - }, - "type": "object" - }, - "FailoverCondition": { - "additionalProperties": false, - "properties": { - "FailoverConditionSettings": { - "$ref": "#/definitions/FailoverConditionSettings" - } - }, - "type": "object" - }, - "FailoverConditionSettings": { - "additionalProperties": false, - "properties": { - "AudioSilenceSettings": { - "$ref": "#/definitions/AudioSilenceFailoverSettings" - }, - "InputLossSettings": { - "$ref": "#/definitions/InputLossFailoverSettings" - }, - "VideoBlackSettings": { - "$ref": "#/definitions/VideoBlackFailoverSettings" - } - }, - "type": "object" - }, - "FeatureActivations": { - "additionalProperties": false, - "properties": { - "InputPrepareScheduleActions": { - "type": "string" - }, - "OutputStaticImageOverlayScheduleActions": { - "type": "string" - } - }, - "type": "object" - }, - "FecOutputSettings": { - "additionalProperties": false, - "properties": { - "ColumnDepth": { - "type": "integer" - }, - "IncludeFec": { - "type": "string" - }, - "RowLength": { - "type": "integer" - } - }, - "type": "object" - }, - "Fmp4HlsSettings": { - "additionalProperties": false, - "properties": { - "AudioRenditionSets": { - "type": "string" - }, - "NielsenId3Behavior": { - "type": "string" - }, - "TimedMetadataBehavior": { - "type": "string" - } - }, - "type": "object" - }, - "FrameCaptureCdnSettings": { - "additionalProperties": false, - "properties": { - "FrameCaptureS3Settings": { - "$ref": "#/definitions/FrameCaptureS3Settings" - } - }, - "type": "object" - }, - "FrameCaptureGroupSettings": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "FrameCaptureCdnSettings": { - "$ref": "#/definitions/FrameCaptureCdnSettings" - } - }, - "type": "object" - }, - "FrameCaptureHlsSettings": { - "additionalProperties": false, - "type": "object" - }, - "FrameCaptureOutputSettings": { - "additionalProperties": false, - "properties": { - "NameModifier": { - "type": "string" - } - }, - "type": "object" - }, - "FrameCaptureS3Settings": { - "additionalProperties": false, - "properties": { - "CannedAcl": { - "type": "string" - } - }, - "type": "object" - }, - "FrameCaptureSettings": { - "additionalProperties": false, - "properties": { - "CaptureInterval": { - "type": "integer" - }, - "CaptureIntervalUnits": { - "type": "string" - }, - "TimecodeBurninSettings": { - "$ref": "#/definitions/TimecodeBurninSettings" - } - }, - "type": "object" - }, - "GlobalConfiguration": { - "additionalProperties": false, - "properties": { - "InitialAudioGain": { - "type": "integer" - }, - "InputEndAction": { - "type": "string" - }, - "InputLossBehavior": { - "$ref": "#/definitions/InputLossBehavior" - }, - "OutputLockingMode": { - "type": "string" - }, - "OutputLockingSettings": { - "$ref": "#/definitions/OutputLockingSettings" - }, - "OutputTimingSource": { - "type": "string" - }, - "SupportLowFramerateInputs": { - "type": "string" - } - }, - "type": "object" - }, - "H264ColorSpaceSettings": { - "additionalProperties": false, - "properties": { - "ColorSpacePassthroughSettings": { - "$ref": "#/definitions/ColorSpacePassthroughSettings" - }, - "Rec601Settings": { - "$ref": "#/definitions/Rec601Settings" - }, - "Rec709Settings": { - "$ref": "#/definitions/Rec709Settings" - } - }, - "type": "object" - }, - "H264FilterSettings": { - "additionalProperties": false, - "properties": { - "TemporalFilterSettings": { - "$ref": "#/definitions/TemporalFilterSettings" - } - }, - "type": "object" - }, - "H264Settings": { - "additionalProperties": false, - "properties": { - "AdaptiveQuantization": { - "type": "string" - }, - "AfdSignaling": { - "type": "string" - }, - "Bitrate": { - "type": "integer" - }, - "BufFillPct": { - "type": "integer" - }, - "BufSize": { - "type": "integer" - }, - "ColorMetadata": { - "type": "string" - }, - "ColorSpaceSettings": { - "$ref": "#/definitions/H264ColorSpaceSettings" - }, - "EntropyEncoding": { - "type": "string" - }, - "FilterSettings": { - "$ref": "#/definitions/H264FilterSettings" - }, - "FixedAfd": { - "type": "string" - }, - "FlickerAq": { - "type": "string" - }, - "ForceFieldPictures": { - "type": "string" - }, - "FramerateControl": { - "type": "string" - }, - "FramerateDenominator": { - "type": "integer" - }, - "FramerateNumerator": { - "type": "integer" - }, - "GopBReference": { - "type": "string" - }, - "GopClosedCadence": { - "type": "integer" - }, - "GopNumBFrames": { - "type": "integer" - }, - "GopSize": { - "type": "number" - }, - "GopSizeUnits": { - "type": "string" - }, - "Level": { - "type": "string" - }, - "LookAheadRateControl": { - "type": "string" - }, - "MaxBitrate": { - "type": "integer" - }, - "MinIInterval": { - "type": "integer" - }, - "NumRefFrames": { - "type": "integer" - }, - "ParControl": { - "type": "string" - }, - "ParDenominator": { - "type": "integer" - }, - "ParNumerator": { - "type": "integer" - }, - "Profile": { - "type": "string" - }, - "QualityLevel": { - "type": "string" - }, - "QvbrQualityLevel": { - "type": "integer" - }, - "RateControlMode": { - "type": "string" - }, - "ScanType": { - "type": "string" - }, - "SceneChangeDetect": { - "type": "string" - }, - "Slices": { - "type": "integer" - }, - "Softness": { - "type": "integer" - }, - "SpatialAq": { - "type": "string" - }, - "SubgopLength": { - "type": "string" - }, - "Syntax": { - "type": "string" - }, - "TemporalAq": { - "type": "string" - }, - "TimecodeBurninSettings": { - "$ref": "#/definitions/TimecodeBurninSettings" - }, - "TimecodeInsertion": { - "type": "string" - } - }, - "type": "object" - }, - "H265ColorSpaceSettings": { - "additionalProperties": false, - "properties": { - "ColorSpacePassthroughSettings": { - "$ref": "#/definitions/ColorSpacePassthroughSettings" - }, - "DolbyVision81Settings": { - "$ref": "#/definitions/DolbyVision81Settings" - }, - "Hdr10Settings": { - "$ref": "#/definitions/Hdr10Settings" - }, - "Rec601Settings": { - "$ref": "#/definitions/Rec601Settings" - }, - "Rec709Settings": { - "$ref": "#/definitions/Rec709Settings" - } - }, - "type": "object" - }, - "H265FilterSettings": { - "additionalProperties": false, - "properties": { - "TemporalFilterSettings": { - "$ref": "#/definitions/TemporalFilterSettings" - } - }, - "type": "object" - }, - "H265Settings": { - "additionalProperties": false, - "properties": { - "AdaptiveQuantization": { - "type": "string" - }, - "AfdSignaling": { - "type": "string" - }, - "AlternativeTransferFunction": { - "type": "string" - }, - "Bitrate": { - "type": "integer" - }, - "BufSize": { - "type": "integer" - }, - "ColorMetadata": { - "type": "string" - }, - "ColorSpaceSettings": { - "$ref": "#/definitions/H265ColorSpaceSettings" - }, - "FilterSettings": { - "$ref": "#/definitions/H265FilterSettings" - }, - "FixedAfd": { - "type": "string" - }, - "FlickerAq": { - "type": "string" - }, - "FramerateDenominator": { - "type": "integer" - }, - "FramerateNumerator": { - "type": "integer" - }, - "GopClosedCadence": { - "type": "integer" - }, - "GopSize": { - "type": "number" - }, - "GopSizeUnits": { - "type": "string" - }, - "Level": { - "type": "string" - }, - "LookAheadRateControl": { - "type": "string" - }, - "MaxBitrate": { - "type": "integer" - }, - "MinIInterval": { - "type": "integer" - }, - "ParDenominator": { - "type": "integer" - }, - "ParNumerator": { - "type": "integer" - }, - "Profile": { - "type": "string" - }, - "QvbrQualityLevel": { - "type": "integer" - }, - "RateControlMode": { - "type": "string" - }, - "ScanType": { - "type": "string" - }, - "SceneChangeDetect": { - "type": "string" - }, - "Slices": { - "type": "integer" - }, - "Tier": { - "type": "string" - }, - "TimecodeBurninSettings": { - "$ref": "#/definitions/TimecodeBurninSettings" - }, - "TimecodeInsertion": { - "type": "string" - } - }, - "type": "object" - }, - "Hdr10Settings": { - "additionalProperties": false, - "properties": { - "MaxCll": { - "type": "integer" - }, - "MaxFall": { - "type": "integer" - } - }, - "type": "object" - }, - "HlsAkamaiSettings": { - "additionalProperties": false, - "properties": { - "ConnectionRetryInterval": { - "type": "integer" - }, - "FilecacheDuration": { - "type": "integer" - }, - "HttpTransferMode": { - "type": "string" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - }, - "Salt": { - "type": "string" - }, - "Token": { - "type": "string" - } - }, - "type": "object" - }, - "HlsBasicPutSettings": { - "additionalProperties": false, - "properties": { - "ConnectionRetryInterval": { - "type": "integer" - }, - "FilecacheDuration": { - "type": "integer" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - } - }, - "type": "object" - }, - "HlsCdnSettings": { - "additionalProperties": false, - "properties": { - "HlsAkamaiSettings": { - "$ref": "#/definitions/HlsAkamaiSettings" - }, - "HlsBasicPutSettings": { - "$ref": "#/definitions/HlsBasicPutSettings" - }, - "HlsMediaStoreSettings": { - "$ref": "#/definitions/HlsMediaStoreSettings" - }, - "HlsS3Settings": { - "$ref": "#/definitions/HlsS3Settings" - }, - "HlsWebdavSettings": { - "$ref": "#/definitions/HlsWebdavSettings" - } - }, - "type": "object" - }, - "HlsGroupSettings": { - "additionalProperties": false, - "properties": { - "AdMarkers": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "BaseUrlContent": { - "type": "string" - }, - "BaseUrlContent1": { - "type": "string" - }, - "BaseUrlManifest": { - "type": "string" - }, - "BaseUrlManifest1": { - "type": "string" - }, - "CaptionLanguageMappings": { - "items": { - "$ref": "#/definitions/CaptionLanguageMapping" - }, - "type": "array", - "uniqueItems": false - }, - "CaptionLanguageSetting": { - "type": "string" - }, - "ClientCache": { - "type": "string" - }, - "CodecSpecification": { - "type": "string" - }, - "ConstantIv": { - "type": "string" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "DirectoryStructure": { - "type": "string" - }, - "DiscontinuityTags": { - "type": "string" - }, - "EncryptionType": { - "type": "string" - }, - "HlsCdnSettings": { - "$ref": "#/definitions/HlsCdnSettings" - }, - "HlsId3SegmentTagging": { - "type": "string" - }, - "IFrameOnlyPlaylists": { - "type": "string" - }, - "IncompleteSegmentBehavior": { - "type": "string" - }, - "IndexNSegments": { - "type": "integer" - }, - "InputLossAction": { - "type": "string" - }, - "IvInManifest": { - "type": "string" - }, - "IvSource": { - "type": "string" - }, - "KeepSegments": { - "type": "integer" - }, - "KeyFormat": { - "type": "string" - }, - "KeyFormatVersions": { - "type": "string" - }, - "KeyProviderSettings": { - "$ref": "#/definitions/KeyProviderSettings" - }, - "ManifestCompression": { - "type": "string" - }, - "ManifestDurationFormat": { - "type": "string" - }, - "MinSegmentLength": { - "type": "integer" - }, - "Mode": { - "type": "string" - }, - "OutputSelection": { - "type": "string" - }, - "ProgramDateTime": { - "type": "string" - }, - "ProgramDateTimeClock": { - "type": "string" - }, - "ProgramDateTimePeriod": { - "type": "integer" - }, - "RedundantManifest": { - "type": "string" - }, - "SegmentLength": { - "type": "integer" - }, - "SegmentationMode": { - "type": "string" - }, - "SegmentsPerSubdirectory": { - "type": "integer" - }, - "StreamInfResolution": { - "type": "string" - }, - "TimedMetadataId3Frame": { - "type": "string" - }, - "TimedMetadataId3Period": { - "type": "integer" - }, - "TimestampDeltaMilliseconds": { - "type": "integer" - }, - "TsFileMode": { - "type": "string" - } - }, - "type": "object" - }, - "HlsInputSettings": { - "additionalProperties": false, - "properties": { - "Bandwidth": { - "type": "integer" - }, - "BufferSegments": { - "type": "integer" - }, - "Retries": { - "type": "integer" - }, - "RetryInterval": { - "type": "integer" - }, - "Scte35Source": { - "type": "string" - } - }, - "type": "object" - }, - "HlsMediaStoreSettings": { - "additionalProperties": false, - "properties": { - "ConnectionRetryInterval": { - "type": "integer" - }, - "FilecacheDuration": { - "type": "integer" - }, - "MediaStoreStorageClass": { - "type": "string" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - } - }, - "type": "object" - }, - "HlsOutputSettings": { - "additionalProperties": false, - "properties": { - "H265PackagingType": { - "type": "string" - }, - "HlsSettings": { - "$ref": "#/definitions/HlsSettings" - }, - "NameModifier": { - "type": "string" - }, - "SegmentModifier": { - "type": "string" - } - }, - "type": "object" - }, - "HlsS3Settings": { - "additionalProperties": false, - "properties": { - "CannedAcl": { - "type": "string" - } - }, - "type": "object" - }, - "HlsSettings": { - "additionalProperties": false, - "properties": { - "AudioOnlyHlsSettings": { - "$ref": "#/definitions/AudioOnlyHlsSettings" - }, - "Fmp4HlsSettings": { - "$ref": "#/definitions/Fmp4HlsSettings" - }, - "FrameCaptureHlsSettings": { - "$ref": "#/definitions/FrameCaptureHlsSettings" - }, - "StandardHlsSettings": { - "$ref": "#/definitions/StandardHlsSettings" - } - }, - "type": "object" - }, - "HlsWebdavSettings": { - "additionalProperties": false, - "properties": { - "ConnectionRetryInterval": { - "type": "integer" - }, - "FilecacheDuration": { - "type": "integer" - }, - "HttpTransferMode": { - "type": "string" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - } - }, - "type": "object" - }, - "HtmlMotionGraphicsSettings": { - "additionalProperties": false, - "type": "object" - }, - "InputAttachment": { - "additionalProperties": false, - "properties": { - "AutomaticInputFailoverSettings": { - "$ref": "#/definitions/AutomaticInputFailoverSettings" - }, - "InputAttachmentName": { - "type": "string" - }, - "InputId": { - "type": "string" - }, - "InputSettings": { - "$ref": "#/definitions/InputSettings" - } - }, - "type": "object" - }, - "InputChannelLevel": { - "additionalProperties": false, - "properties": { - "Gain": { - "type": "integer" - }, - "InputChannel": { - "type": "integer" - } - }, - "type": "object" - }, - "InputLocation": { - "additionalProperties": false, - "properties": { - "PasswordParam": { - "type": "string" - }, - "Uri": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, - "InputLossBehavior": { - "additionalProperties": false, - "properties": { - "BlackFrameMsec": { - "type": "integer" - }, - "InputLossImageColor": { - "type": "string" - }, - "InputLossImageSlate": { - "$ref": "#/definitions/InputLocation" - }, - "InputLossImageType": { - "type": "string" - }, - "RepeatFrameMsec": { - "type": "integer" - } - }, - "type": "object" - }, - "InputLossFailoverSettings": { - "additionalProperties": false, - "properties": { - "InputLossThresholdMsec": { - "type": "integer" - } - }, - "type": "object" - }, - "InputSettings": { - "additionalProperties": false, - "properties": { - "AudioSelectors": { - "items": { - "$ref": "#/definitions/AudioSelector" - }, - "type": "array", - "uniqueItems": false - }, - "CaptionSelectors": { - "items": { - "$ref": "#/definitions/CaptionSelector" - }, - "type": "array", - "uniqueItems": false - }, - "DeblockFilter": { - "type": "string" - }, - "DenoiseFilter": { - "type": "string" - }, - "FilterStrength": { - "type": "integer" - }, - "InputFilter": { - "type": "string" - }, - "NetworkInputSettings": { - "$ref": "#/definitions/NetworkInputSettings" - }, - "Scte35Pid": { - "type": "integer" - }, - "Smpte2038DataPreference": { - "type": "string" - }, - "SourceEndBehavior": { - "type": "string" - }, - "VideoSelector": { - "$ref": "#/definitions/VideoSelector" - } - }, - "type": "object" - }, - "InputSpecification": { - "additionalProperties": false, - "properties": { - "Codec": { - "type": "string" - }, - "MaximumBitrate": { - "type": "string" - }, - "Resolution": { - "type": "string" - } - }, - "type": "object" - }, - "KeyProviderSettings": { - "additionalProperties": false, - "properties": { - "StaticKeySettings": { - "$ref": "#/definitions/StaticKeySettings" - } - }, - "type": "object" - }, - "M2tsSettings": { - "additionalProperties": false, - "properties": { - "AbsentInputAudioBehavior": { - "type": "string" - }, - "Arib": { - "type": "string" - }, - "AribCaptionsPid": { - "type": "string" - }, - "AribCaptionsPidControl": { - "type": "string" - }, - "AudioBufferModel": { - "type": "string" - }, - "AudioFramesPerPes": { - "type": "integer" - }, - "AudioPids": { - "type": "string" - }, - "AudioStreamType": { - "type": "string" - }, - "Bitrate": { - "type": "integer" - }, - "BufferModel": { - "type": "string" - }, - "CcDescriptor": { - "type": "string" - }, - "DvbNitSettings": { - "$ref": "#/definitions/DvbNitSettings" - }, - "DvbSdtSettings": { - "$ref": "#/definitions/DvbSdtSettings" - }, - "DvbSubPids": { - "type": "string" - }, - "DvbTdtSettings": { - "$ref": "#/definitions/DvbTdtSettings" - }, - "DvbTeletextPid": { - "type": "string" - }, - "Ebif": { - "type": "string" - }, - "EbpAudioInterval": { - "type": "string" - }, - "EbpLookaheadMs": { - "type": "integer" - }, - "EbpPlacement": { - "type": "string" - }, - "EcmPid": { - "type": "string" - }, - "EsRateInPes": { - "type": "string" - }, - "EtvPlatformPid": { - "type": "string" - }, - "EtvSignalPid": { - "type": "string" - }, - "FragmentTime": { - "type": "number" - }, - "Klv": { - "type": "string" - }, - "KlvDataPids": { - "type": "string" - }, - "NielsenId3Behavior": { - "type": "string" - }, - "NullPacketBitrate": { - "type": "number" - }, - "PatInterval": { - "type": "integer" - }, - "PcrControl": { - "type": "string" - }, - "PcrPeriod": { - "type": "integer" - }, - "PcrPid": { - "type": "string" - }, - "PmtInterval": { - "type": "integer" - }, - "PmtPid": { - "type": "string" - }, - "ProgramNum": { - "type": "integer" - }, - "RateMode": { - "type": "string" - }, - "Scte27Pids": { - "type": "string" - }, - "Scte35Control": { - "type": "string" - }, - "Scte35Pid": { - "type": "string" - }, - "Scte35PrerollPullupMilliseconds": { - "type": "number" - }, - "SegmentationMarkers": { - "type": "string" - }, - "SegmentationStyle": { - "type": "string" - }, - "SegmentationTime": { - "type": "number" - }, - "TimedMetadataBehavior": { - "type": "string" - }, - "TimedMetadataPid": { - "type": "string" - }, - "TransportStreamId": { - "type": "integer" - }, - "VideoPid": { - "type": "string" - } - }, - "type": "object" - }, - "M3u8Settings": { - "additionalProperties": false, - "properties": { - "AudioFramesPerPes": { - "type": "integer" - }, - "AudioPids": { - "type": "string" - }, - "EcmPid": { - "type": "string" - }, - "KlvBehavior": { - "type": "string" - }, - "KlvDataPids": { - "type": "string" - }, - "NielsenId3Behavior": { - "type": "string" - }, - "PatInterval": { - "type": "integer" - }, - "PcrControl": { - "type": "string" - }, - "PcrPeriod": { - "type": "integer" - }, - "PcrPid": { - "type": "string" - }, - "PmtInterval": { - "type": "integer" - }, - "PmtPid": { - "type": "string" - }, - "ProgramNum": { - "type": "integer" - }, - "Scte35Behavior": { - "type": "string" - }, - "Scte35Pid": { - "type": "string" - }, - "TimedMetadataBehavior": { - "type": "string" - }, - "TimedMetadataPid": { - "type": "string" - }, - "TransportStreamId": { - "type": "integer" - }, - "VideoPid": { - "type": "string" - } - }, - "type": "object" - }, - "MaintenanceCreateSettings": { - "additionalProperties": false, - "properties": { - "MaintenanceDay": { - "type": "string" - }, - "MaintenanceStartTime": { - "type": "string" - } - }, - "type": "object" - }, - "MediaPackageGroupSettings": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - } - }, - "type": "object" - }, - "MediaPackageOutputDestinationSettings": { - "additionalProperties": false, - "properties": { - "ChannelId": { - "type": "string" - } - }, - "type": "object" - }, - "MediaPackageOutputSettings": { - "additionalProperties": false, - "type": "object" - }, - "MotionGraphicsConfiguration": { - "additionalProperties": false, - "properties": { - "MotionGraphicsInsertion": { - "type": "string" - }, - "MotionGraphicsSettings": { - "$ref": "#/definitions/MotionGraphicsSettings" - } - }, - "type": "object" - }, - "MotionGraphicsSettings": { - "additionalProperties": false, - "properties": { - "HtmlMotionGraphicsSettings": { - "$ref": "#/definitions/HtmlMotionGraphicsSettings" - } - }, - "type": "object" - }, - "Mp2Settings": { - "additionalProperties": false, - "properties": { - "Bitrate": { - "type": "number" - }, - "CodingMode": { - "type": "string" - }, - "SampleRate": { - "type": "number" - } - }, - "type": "object" - }, - "Mpeg2FilterSettings": { - "additionalProperties": false, - "properties": { - "TemporalFilterSettings": { - "$ref": "#/definitions/TemporalFilterSettings" - } - }, - "type": "object" - }, - "Mpeg2Settings": { - "additionalProperties": false, - "properties": { - "AdaptiveQuantization": { - "type": "string" - }, - "AfdSignaling": { - "type": "string" - }, - "ColorMetadata": { - "type": "string" - }, - "ColorSpace": { - "type": "string" - }, - "DisplayAspectRatio": { - "type": "string" - }, - "FilterSettings": { - "$ref": "#/definitions/Mpeg2FilterSettings" - }, - "FixedAfd": { - "type": "string" - }, - "FramerateDenominator": { - "type": "integer" - }, - "FramerateNumerator": { - "type": "integer" - }, - "GopClosedCadence": { - "type": "integer" - }, - "GopNumBFrames": { - "type": "integer" - }, - "GopSize": { - "type": "number" - }, - "GopSizeUnits": { - "type": "string" - }, - "ScanType": { - "type": "string" - }, - "SubgopLength": { - "type": "string" - }, - "TimecodeBurninSettings": { - "$ref": "#/definitions/TimecodeBurninSettings" - }, - "TimecodeInsertion": { - "type": "string" - } - }, - "type": "object" - }, - "MsSmoothGroupSettings": { - "additionalProperties": false, - "properties": { - "AcquisitionPointId": { - "type": "string" - }, - "AudioOnlyTimecodeControl": { - "type": "string" - }, - "CertificateMode": { - "type": "string" - }, - "ConnectionRetryInterval": { - "type": "integer" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "EventId": { - "type": "string" - }, - "EventIdMode": { - "type": "string" - }, - "EventStopBehavior": { - "type": "string" - }, - "FilecacheDuration": { - "type": "integer" - }, - "FragmentLength": { - "type": "integer" - }, - "InputLossAction": { - "type": "string" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - }, - "SegmentationMode": { - "type": "string" - }, - "SendDelayMs": { - "type": "integer" - }, - "SparseTrackType": { - "type": "string" - }, - "StreamManifestBehavior": { - "type": "string" - }, - "TimestampOffset": { - "type": "string" - }, - "TimestampOffsetMode": { - "type": "string" - } - }, - "type": "object" - }, - "MsSmoothOutputSettings": { - "additionalProperties": false, - "properties": { - "H265PackagingType": { - "type": "string" - }, - "NameModifier": { - "type": "string" - } - }, - "type": "object" - }, - "MultiplexGroupSettings": { - "additionalProperties": false, - "type": "object" - }, - "MultiplexOutputSettings": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - } - }, - "type": "object" - }, - "MultiplexProgramChannelDestinationSettings": { - "additionalProperties": false, - "properties": { - "MultiplexId": { - "type": "string" - }, - "ProgramName": { - "type": "string" - } - }, - "type": "object" - }, - "NetworkInputSettings": { - "additionalProperties": false, - "properties": { - "HlsInputSettings": { - "$ref": "#/definitions/HlsInputSettings" - }, - "ServerValidation": { - "type": "string" - } - }, - "type": "object" - }, - "NielsenCBET": { - "additionalProperties": false, - "properties": { - "CbetCheckDigitString": { - "type": "string" - }, - "CbetStepaside": { - "type": "string" - }, - "Csid": { - "type": "string" - } - }, - "type": "object" - }, - "NielsenConfiguration": { - "additionalProperties": false, - "properties": { - "DistributorId": { - "type": "string" - }, - "NielsenPcmToId3Tagging": { - "type": "string" - } - }, - "type": "object" - }, - "NielsenNaesIiNw": { - "additionalProperties": false, - "properties": { - "CheckDigitString": { - "type": "string" - }, - "Sid": { - "type": "number" - }, - "Timezone": { - "type": "string" - } - }, - "type": "object" - }, - "NielsenWatermarksSettings": { - "additionalProperties": false, - "properties": { - "NielsenCbetSettings": { - "$ref": "#/definitions/NielsenCBET" - }, - "NielsenDistributionType": { - "type": "string" - }, - "NielsenNaesIiNwSettings": { - "$ref": "#/definitions/NielsenNaesIiNw" - } - }, - "type": "object" - }, - "Output": { - "additionalProperties": false, - "properties": { - "AudioDescriptionNames": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "CaptionDescriptionNames": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "OutputName": { - "type": "string" - }, - "OutputSettings": { - "$ref": "#/definitions/OutputSettings" - }, - "VideoDescriptionName": { - "type": "string" - } - }, - "type": "object" - }, - "OutputDestination": { - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" - }, - "MediaPackageSettings": { - "items": { - "$ref": "#/definitions/MediaPackageOutputDestinationSettings" - }, - "type": "array", - "uniqueItems": false - }, - "MultiplexSettings": { - "$ref": "#/definitions/MultiplexProgramChannelDestinationSettings" - }, - "Settings": { - "items": { - "$ref": "#/definitions/OutputDestinationSettings" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "OutputDestinationSettings": { - "additionalProperties": false, - "properties": { - "PasswordParam": { - "type": "string" - }, - "StreamName": { - "type": "string" - }, - "Url": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, - "OutputGroup": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "OutputGroupSettings": { - "$ref": "#/definitions/OutputGroupSettings" - }, - "Outputs": { - "items": { - "$ref": "#/definitions/Output" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "OutputGroupSettings": { - "additionalProperties": false, - "properties": { - "ArchiveGroupSettings": { - "$ref": "#/definitions/ArchiveGroupSettings" - }, - "FrameCaptureGroupSettings": { - "$ref": "#/definitions/FrameCaptureGroupSettings" - }, - "HlsGroupSettings": { - "$ref": "#/definitions/HlsGroupSettings" - }, - "MediaPackageGroupSettings": { - "$ref": "#/definitions/MediaPackageGroupSettings" - }, - "MsSmoothGroupSettings": { - "$ref": "#/definitions/MsSmoothGroupSettings" - }, - "MultiplexGroupSettings": { - "$ref": "#/definitions/MultiplexGroupSettings" - }, - "RtmpGroupSettings": { - "$ref": "#/definitions/RtmpGroupSettings" - }, - "UdpGroupSettings": { - "$ref": "#/definitions/UdpGroupSettings" - } - }, - "type": "object" - }, - "OutputLocationRef": { - "additionalProperties": false, - "properties": { - "DestinationRefId": { - "type": "string" - } - }, - "type": "object" - }, - "OutputLockingSettings": { - "additionalProperties": false, - "properties": { - "EpochLockingSettings": { - "$ref": "#/definitions/EpochLockingSettings" - }, - "PipelineLockingSettings": { - "$ref": "#/definitions/PipelineLockingSettings" - } - }, - "type": "object" - }, - "OutputSettings": { - "additionalProperties": false, - "properties": { - "ArchiveOutputSettings": { - "$ref": "#/definitions/ArchiveOutputSettings" - }, - "FrameCaptureOutputSettings": { - "$ref": "#/definitions/FrameCaptureOutputSettings" - }, - "HlsOutputSettings": { - "$ref": "#/definitions/HlsOutputSettings" - }, - "MediaPackageOutputSettings": { - "$ref": "#/definitions/MediaPackageOutputSettings" - }, - "MsSmoothOutputSettings": { - "$ref": "#/definitions/MsSmoothOutputSettings" - }, - "MultiplexOutputSettings": { - "$ref": "#/definitions/MultiplexOutputSettings" - }, - "RtmpOutputSettings": { - "$ref": "#/definitions/RtmpOutputSettings" - }, - "UdpOutputSettings": { - "$ref": "#/definitions/UdpOutputSettings" - } - }, - "type": "object" - }, - "PassThroughSettings": { - "additionalProperties": false, - "type": "object" - }, - "PipelineLockingSettings": { - "additionalProperties": false, - "type": "object" - }, - "RawSettings": { - "additionalProperties": false, - "type": "object" - }, - "Rec601Settings": { - "additionalProperties": false, - "type": "object" - }, - "Rec709Settings": { - "additionalProperties": false, - "type": "object" - }, - "RemixSettings": { - "additionalProperties": false, - "properties": { - "ChannelMappings": { - "items": { - "$ref": "#/definitions/AudioChannelMapping" - }, - "type": "array", - "uniqueItems": false - }, - "ChannelsIn": { - "type": "integer" - }, - "ChannelsOut": { - "type": "integer" - } - }, - "type": "object" - }, - "RtmpCaptionInfoDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "RtmpGroupSettings": { - "additionalProperties": false, - "properties": { - "AdMarkers": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "AuthenticationScheme": { - "type": "string" - }, - "CacheFullBehavior": { - "type": "string" - }, - "CacheLength": { - "type": "integer" - }, - "CaptionData": { - "type": "string" - }, - "IncludeFillerNalUnits": { - "type": "string" - }, - "InputLossAction": { - "type": "string" - }, - "RestartDelay": { - "type": "integer" - } - }, - "type": "object" - }, - "RtmpOutputSettings": { - "additionalProperties": false, - "properties": { - "CertificateMode": { - "type": "string" - }, - "ConnectionRetryInterval": { - "type": "integer" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "NumRetries": { - "type": "integer" - } - }, - "type": "object" - }, - "Scte20PlusEmbeddedDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "Scte20SourceSettings": { - "additionalProperties": false, - "properties": { - "Convert608To708": { - "type": "string" - }, - "Source608ChannelNumber": { - "type": "integer" - } - }, - "type": "object" - }, - "Scte27DestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "Scte27SourceSettings": { - "additionalProperties": false, - "properties": { - "OcrLanguage": { - "type": "string" - }, - "Pid": { - "type": "integer" - } - }, - "type": "object" - }, - "Scte35SpliceInsert": { - "additionalProperties": false, - "properties": { - "AdAvailOffset": { - "type": "integer" - }, - "NoRegionalBlackoutFlag": { - "type": "string" - }, - "WebDeliveryAllowedFlag": { - "type": "string" - } - }, - "type": "object" - }, - "Scte35TimeSignalApos": { - "additionalProperties": false, - "properties": { - "AdAvailOffset": { - "type": "integer" - }, - "NoRegionalBlackoutFlag": { - "type": "string" - }, - "WebDeliveryAllowedFlag": { - "type": "string" - } - }, - "type": "object" - }, - "SmpteTtDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "StandardHlsSettings": { - "additionalProperties": false, - "properties": { - "AudioRenditionSets": { - "type": "string" - }, - "M3u8Settings": { - "$ref": "#/definitions/M3u8Settings" - } - }, - "type": "object" - }, - "StaticKeySettings": { - "additionalProperties": false, - "properties": { - "KeyProviderServer": { - "$ref": "#/definitions/InputLocation" - }, - "StaticKeyValue": { - "type": "string" - } - }, - "type": "object" - }, - "TeletextDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "TeletextSourceSettings": { - "additionalProperties": false, - "properties": { - "OutputRectangle": { - "$ref": "#/definitions/CaptionRectangle" - }, - "PageNumber": { - "type": "string" - } - }, - "type": "object" - }, - "TemporalFilterSettings": { - "additionalProperties": false, - "properties": { - "PostFilterSharpening": { - "type": "string" - }, - "Strength": { - "type": "string" - } - }, - "type": "object" - }, - "ThumbnailConfiguration": { - "additionalProperties": false, - "properties": { - "State": { - "type": "string" - } - }, - "type": "object" - }, - "TimecodeBurninSettings": { - "additionalProperties": false, - "properties": { - "FontSize": { - "type": "string" - }, - "Position": { - "type": "string" - }, - "Prefix": { - "type": "string" - } - }, - "type": "object" - }, - "TimecodeConfig": { - "additionalProperties": false, - "properties": { - "Source": { - "type": "string" - }, - "SyncThreshold": { - "type": "integer" - } - }, - "type": "object" - }, - "TtmlDestinationSettings": { - "additionalProperties": false, - "properties": { - "StyleControl": { - "type": "string" - } - }, - "type": "object" - }, - "UdpContainerSettings": { - "additionalProperties": false, - "properties": { - "M2tsSettings": { - "$ref": "#/definitions/M2tsSettings" - } - }, - "type": "object" - }, - "UdpGroupSettings": { - "additionalProperties": false, - "properties": { - "InputLossAction": { - "type": "string" - }, - "TimedMetadataId3Frame": { - "type": "string" - }, - "TimedMetadataId3Period": { - "type": "integer" - } - }, - "type": "object" - }, - "UdpOutputSettings": { - "additionalProperties": false, - "properties": { - "BufferMsec": { - "type": "integer" - }, - "ContainerSettings": { - "$ref": "#/definitions/UdpContainerSettings" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "FecOutputSettings": { - "$ref": "#/definitions/FecOutputSettings" - } - }, - "type": "object" - }, - "VideoBlackFailoverSettings": { - "additionalProperties": false, - "properties": { - "BlackDetectThreshold": { - "type": "number" - }, - "VideoBlackThresholdMsec": { - "type": "integer" - } - }, - "type": "object" - }, - "VideoCodecSettings": { - "additionalProperties": false, - "properties": { - "FrameCaptureSettings": { - "$ref": "#/definitions/FrameCaptureSettings" - }, - "H264Settings": { - "$ref": "#/definitions/H264Settings" - }, - "H265Settings": { - "$ref": "#/definitions/H265Settings" - }, - "Mpeg2Settings": { - "$ref": "#/definitions/Mpeg2Settings" - } - }, - "type": "object" - }, - "VideoDescription": { - "additionalProperties": false, - "properties": { - "CodecSettings": { - "$ref": "#/definitions/VideoCodecSettings" - }, - "Height": { - "type": "integer" - }, - "Name": { - "type": "string" - }, - "RespondToAfd": { - "type": "string" - }, - "ScalingBehavior": { - "type": "string" - }, - "Sharpness": { - "type": "integer" - }, - "Width": { - "type": "integer" - } - }, - "type": "object" - }, - "VideoSelector": { - "additionalProperties": false, - "properties": { - "ColorSpace": { - "type": "string" - }, - "ColorSpaceSettings": { - "$ref": "#/definitions/VideoSelectorColorSpaceSettings" - }, - "ColorSpaceUsage": { - "type": "string" - }, - "SelectorSettings": { - "$ref": "#/definitions/VideoSelectorSettings" - } - }, - "type": "object" - }, - "VideoSelectorColorSpaceSettings": { - "additionalProperties": false, - "properties": { - "Hdr10Settings": { - "$ref": "#/definitions/Hdr10Settings" - } - }, - "type": "object" - }, - "VideoSelectorPid": { - "additionalProperties": false, - "properties": { - "Pid": { - "type": "integer" - } - }, - "type": "object" - }, - "VideoSelectorProgramId": { - "additionalProperties": false, - "properties": { - "ProgramId": { - "type": "integer" - } - }, - "type": "object" - }, - "VideoSelectorSettings": { - "additionalProperties": false, - "properties": { - "VideoSelectorPid": { - "$ref": "#/definitions/VideoSelectorPid" - }, - "VideoSelectorProgramId": { - "$ref": "#/definitions/VideoSelectorProgramId" - } - }, - "type": "object" - }, - "VpcOutputSettings": { - "additionalProperties": false, - "properties": { - "PublicAddressAllocationIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "WavSettings": { - "additionalProperties": false, - "properties": { - "BitDepth": { - "type": "number" - }, - "CodingMode": { - "type": "string" - }, - "SampleRate": { - "type": "number" - } - }, - "type": "object" - }, - "WebvttDestinationSettings": { - "additionalProperties": false, - "properties": { - "StyleControl": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::MediaLive::Channel", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "type": "string" - }, - "CdiInputSpecification": { - "$ref": "#/definitions/CdiInputSpecification" - }, - "ChannelClass": { - "type": "string" - }, - "Destinations": { - "items": { - "$ref": "#/definitions/OutputDestination" - }, - "type": "array", - "uniqueItems": false - }, - "EncoderSettings": { - "$ref": "#/definitions/EncoderSettings" - }, - "Id": { - "type": "string" - }, - "InputAttachments": { - "items": { - "$ref": "#/definitions/InputAttachment" - }, - "type": "array", - "uniqueItems": false - }, - "InputSpecification": { - "$ref": "#/definitions/InputSpecification" - }, - "Inputs": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "LogLevel": { - "type": "string" - }, - "Maintenance": { - "$ref": "#/definitions/MaintenanceCreateSettings" - }, - "Name": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "Tags": { - "type": "object" - }, - "Vpc": { - "$ref": "#/definitions/VpcOutputSettings" - } - }, - "readOnlyProperties": [ - "/properties/Inputs", - "/properties/Id", - "/properties/Arn" - ], - "typeName": "AWS::MediaLive::Channel" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-route53resolver-resolverconfig.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-route53resolver-resolverconfig.json deleted file mode 100644 index 33f4996fbd..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-route53resolver-resolverconfig.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ResourceId", - "/properties/AutodefinedReverseFlag" - ], - "description": "Resource schema for AWS::Route53Resolver::ResolverConfig.", - "handlers": { - "create": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "delete": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "list": { - "permissions": [ - "route53resolver:ListResolverConfigs" - ] - }, - "read": { - "permissions": [ - "route53resolver:GetResolverConfig" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AutodefinedReverse": { - "description": "ResolverAutodefinedReverseStatus, possible values are ENABLING, ENABLED, DISABLING AND DISABLED.", - "enum": [ - "ENABLING", - "ENABLED", - "DISABLING", - "DISABLED" - ], - "type": "string" - }, - "AutodefinedReverseFlag": { - "description": "Represents the desired status of AutodefinedReverse. The only supported value on creation is DISABLE. Deletion of this resource will return AutodefinedReverse to its default value (ENABLED).", - "enum": [ - "DISABLE" - ], - "type": "string" - }, - "Id": { - "description": "Id", - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "OwnerId": { - "description": "AccountId", - "maxLength": 32, - "minLength": 12, - "type": "string" - }, - "ResourceId": { - "description": "ResourceId", - "maxLength": 64, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/OwnerId", - "/properties/Id", - "/properties/AutodefinedReverse" - ], - "required": [ - "ResourceId", - "AutodefinedReverseFlag" - ], - "taggable": false, - "typeName": "AWS::Route53Resolver::ResolverConfig" -} 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 96f2d513d6..49e90840b3 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py @@ -3,6 +3,7 @@ # pylint: disable=too-many-lines types = [ "AWS::CDK::Metadata", + "AWS::CE::AnomalySubscription", "AWS::Shield::DRTAccess", "AWS::SSO::Assignment", "AWS::EC2::TransitGatewayRouteTablePropagation", @@ -62,6 +63,7 @@ "AWS::OpsWorks::Layer", "AWS::CloudTrail::EventDataStore", "AWS::KinesisFirehose::DeliveryStream", + "AWS::Cognito::UserPoolUserToGroupAttachment", "AWS::PCAConnectorAD::DirectoryRegistration", "AWS::SageMaker::CodeRepository", "AWS::ImageBuilder::Component", @@ -215,6 +217,7 @@ "AWS::Route53Resolver::FirewallRuleGroup", "AWS::MSK::Configuration", "AWS::EC2::TransitGateway", + "AWS::Cognito::UserPoolGroup", "AWS::EC2::VPCEndpointServicePermissions", "AWS::SSM::MaintenanceWindowTask", "AWS::EC2::TransitGatewayMulticastDomain", @@ -257,6 +260,7 @@ "AWS::CloudFront::KeyGroup", "AWS::EC2::NetworkInterfaceAttachment", "AWS::EC2::TransitGatewayAttachment", + "AWS::Cognito::UserPoolUser", "AWS::CodeDeploy::DeploymentConfig", "AWS::StepFunctions::StateMachineVersion", "AWS::ServiceCatalogAppRegistry::Application", @@ -283,6 +287,7 @@ "AWS::KMS::Key", "AWS::Route53Resolver::FirewallRuleGroupAssociation", "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", "AWS::EC2::Subnet", "AWS::CloudTrail::ResourcePolicy", "AWS::S3ObjectLambda::AccessPoint", @@ -364,6 +369,7 @@ "AWS::RolesAnywhere::TrustAnchor", "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation", "AWS::ImageBuilder::LifecyclePolicy", + "AWS::Lambda::EventInvokeConfig", "AWS::Lambda::LayerVersion", "AWS::RDS::OptionGroup", "AWS::OpsWorks::UserProfile", @@ -381,6 +387,7 @@ "AWS::ServiceCatalog::ServiceAction", "AWS::IAM::UserPolicy", "AWS::CloudFront::OriginAccessControl", + "AWS::Cognito::UserPool", "AWS::SecretsManager::RotationSchedule", "AWS::Lambda::Permission", "AWS::NetworkFirewall::FirewallPolicy", @@ -494,6 +501,7 @@ "AWS::Config::DeliveryChannel", "AWS::IAM::OIDCProvider", "AWS::LakeFormation::Tag", + "AWS::CE::AnomalyMonitor", "AWS::ServiceCatalogAppRegistry::ResourceAssociation", "AWS::EC2::VPNGateway", "AWS::CloudFormation::Stack", @@ -521,6 +529,7 @@ "AWS::DataSync::LocationFSxONTAP", "AWS::PCAConnectorAD::ServicePrincipalName", "AWS::ElasticBeanstalk::Environment", + "AWS::Cognito::UserPoolClient", "AWS::Lambda::Version", "AWS::EC2::DHCPOptions", "AWS::EC2::IPAMPool", @@ -531,6 +540,7 @@ "AWS::EC2::EIP", "AWS::VerifiedPermissions::Policy", "AWS::CloudFormation::ResourceVersion", + "AWS::Cognito::LogDeliveryConfiguration", "AWS::Chatbot::MicrosoftTeamsChannelConfiguration", "AWS::RDS::DBProxy", "AWS::RDS::DBParameterGroup", @@ -544,6 +554,7 @@ # pylint: disable=too-many-lines cached: List[str] = [ + "aws-ce-anomalysubscription.json", "aws-shield-drtaccess.json", "aws-sso-assignment.json", "aws-ec2-transitgatewayroutetablepropagation.json", @@ -562,7 +573,6 @@ "aws-ecr-replicationconfiguration.json", "aws-appconfig-extensionassociation.json", "aws-ec2-ipampoolcidr.json", - "aws-rds-dbinstance.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-ec2-networkacl.json", "aws-lambda-eventsourcemapping.json", @@ -581,7 +591,6 @@ "aws-transfer-server.json", "aws-ecs-primarytaskset.json", "aws-fms-resourceset.json", - "aws-autoscaling-autoscalinggroup.json", "aws-wafv2-regexpatternset.json", "aws-eks-fargateprofile.json", "aws-route53-dnssec.json", @@ -592,6 +601,7 @@ "aws-elasticache-securitygroup.json", "aws-cloudtrail-eventdatastore.json", "aws-kinesisfirehose-deliverystream.json", + "aws-cognito-userpoolusertogroupattachment.json", "aws-pcaconnectorad-directoryregistration.json", "aws-sagemaker-coderepository.json", "aws-imagebuilder-component.json", @@ -614,7 +624,6 @@ "aws-ec2-vpcendpointconnectionnotification.json", "aws-codepipeline-pipeline.json", "aws-config-configurationaggregator.json", - "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-synthetics-canary.json", @@ -627,6 +636,7 @@ "aws-s3-accessgrant.json", "aws-appconfig-deploymentstrategy.json", "aws-sagemaker-modelpackage.json", + "aws-eventschemas-discoverer.json", "aws-elasticache-usergroup.json", "aws-imagebuilder-imagerecipe.json", "aws-opsworks-elasticloadbalancerattachment.json", @@ -667,7 +677,6 @@ "aws-ec2-transitgatewaymulticastdomainassociation.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", - "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-rds-dbproxytargetgroup.json", "aws-cloudwatch-dashboard.json", @@ -679,9 +688,7 @@ "aws-ses-configurationset.json", "aws-elasticache-parametergroup.json", "aws-networkfirewall-loggingconfiguration.json", - "aws-codedeploy-deploymentgroup.json", "aws-cloudformation-stackset.json", - "aws-ec2-route.json", "aws-cloudformation-hookversion.json", "aws-rolesanywhere-profile.json", "aws-xray-resourcepolicy.json", @@ -707,6 +714,7 @@ "aws-sagemaker-space.json", "aws-fms-notificationchannel.json", "aws-msk-batchscramsecret.json", + "aws-s3-bucket.json", "aws-guardduty-ipset.json", "aws-emr-securityconfiguration.json", "aws-cloudwatch-insightrule.json", @@ -728,6 +736,7 @@ "aws-appconfig-configurationprofile.json", "aws-route53resolver-firewallrulegroup.json", "aws-msk-configuration.json", + "aws-cognito-userpoolgroup.json", "aws-ec2-vpcendpointservicepermissions.json", "aws-ssm-maintenancewindowtask.json", "aws-ec2-transitgatewaymulticastdomain.json", @@ -767,8 +776,9 @@ "aws-iam-samlprovider.json", "aws-cloudfront-keygroup.json", "aws-ec2-networkinterfaceattachment.json", + "aws-cognito-userpooluser.json", + "aws-codedeploy-deploymentconfig.json", "aws-stepfunctions-statemachineversion.json", - "aws-servicecatalogappregistry-application.json", "aws-backup-backupvault.json", "aws-ec2-customergateway.json", "aws-iam-grouppolicy.json", @@ -790,6 +800,7 @@ "aws-kms-key.json", "aws-route53resolver-firewallrulegroupassociation.json", "aws-route53resolver-resolverqueryloggingconfig.json", + "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-subnet.json", "aws-cloudtrail-resourcepolicy.json", "aws-s3objectlambda-accesspoint.json", @@ -818,8 +829,6 @@ "aws-s3-bucketpolicy.json", "aws-appsync-graphqlschema.json", "aws-emr-instancefleetconfig.json", - "aws-emr-cluster.json", - "aws-rds-dbcluster.json", "aws-transfer-agreement.json", "aws-chatbot-slackchannelconfiguration.json", "aws-cloudfront-distribution.json", @@ -841,6 +850,7 @@ "aws-elasticloadbalancingv2-targetgroup.json", "aws-applicationautoscaling-scalingpolicy.json", "aws-pipes-pipe.json", + "aws-emr-studiosessionmapping.json", "aws-cloudformation-macro.json", "aws-sagemaker-workteam.json", "aws-lambda-layerversionpermission.json", @@ -859,6 +869,7 @@ "aws-rolesanywhere-trustanchor.json", "aws-route53resolver-resolverqueryloggingconfigassociation.json", "aws-imagebuilder-lifecyclepolicy.json", + "aws-lambda-eventinvokeconfig.json", "aws-lambda-layerversion.json", "aws-rds-optiongroup.json", "aws-opsworks-userprofile.json", @@ -869,15 +880,16 @@ "aws-sagemaker-notebookinstance.json", "aws-sso-instanceaccesscontrolattributeconfiguration.json", "aws-cloudwatch-anomalydetector.json", + "aws-ec2-subnetnetworkaclassociation.json", "aws-servicecatalog-serviceaction.json", "aws-iam-userpolicy.json", "aws-cloudfront-originaccesscontrol.json", + "aws-cognito-userpool.json", "aws-secretsmanager-rotationschedule.json", "aws-networkfirewall-firewallpolicy.json", "aws-eks-identityproviderconfig.json", "aws-ec2-ipamresourcediscoveryassociation.json", "aws-servicecatalogappregistry-attributegroup.json", - "aws-appsync-graphqlapi.json", "aws-ec2-egressonlyinternetgateway.json", "aws-ec2-vpccidrblock.json", "aws-acmpca-certificateauthority.json", @@ -967,6 +979,7 @@ "aws-config-deliverychannel.json", "aws-iam-oidcprovider.json", "aws-lakeformation-tag.json", + "aws-ce-anomalymonitor.json", "aws-servicecatalogappregistry-resourceassociation.json", "aws-ec2-vpngateway.json", "aws-cloudformation-stack.json", @@ -990,6 +1003,7 @@ "aws-datasync-locationfsxontap.json", "aws-pcaconnectorad-serviceprincipalname.json", "aws-elasticbeanstalk-environment.json", + "aws-cognito-userpoolclient.json", "aws-lambda-version.json", "aws-ec2-dhcpoptions.json", "aws-ec2-ipampool.json", @@ -999,6 +1013,7 @@ "aws-ec2-eip.json", "aws-verifiedpermissions-policy.json", "aws-cloudformation-resourceversion.json", + "aws-cognito-logdeliveryconfiguration.json", "aws-chatbot-microsoftteamschannelconfiguration.json", "aws-rds-dbproxy.json", "aws-rds-dbparametergroup.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-appsync-graphqlapi.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-appsync-graphqlapi.json new file mode 100644 index 0000000000..077c3fd5af --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-appsync-graphqlapi.json @@ -0,0 +1,222 @@ +{ + "additionalProperties": false, + "definitions": { + "AdditionalAuthenticationProvider": { + "additionalProperties": false, + "properties": { + "AuthenticationType": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "UserPoolConfig": { + "$ref": "#/definitions/CognitoUserPoolConfig" + } + }, + "required": [ + "AuthenticationType" + ], + "type": "object" + }, + "CognitoUserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "LambdaAuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsRoleArn": { + "type": "string" + }, + "ExcludeVerboseContent": { + "type": "boolean" + }, + "FieldLogLevel": { + "type": "string" + } + }, + "type": "object" + }, + "OpenIDConnectConfig": { + "additionalProperties": false, + "properties": { + "AuthTTL": { + "type": "number" + }, + "ClientId": { + "type": "string" + }, + "IatTTL": { + "type": "number" + }, + "Issuer": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "UserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "DefaultAction": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AppSync::GraphQLApi", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalAuthenticationProviders": { + "items": { + "$ref": "#/definitions/AdditionalAuthenticationProvider" + }, + "type": "array", + "uniqueItems": false + }, + "ApiId": { + "type": "string" + }, + "ApiType": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "AuthenticationType": { + "enum": [ + "API_KEY", + "AWS_IAM", + "AMAZON_COGNITO_USER_POOLS", + "OPENID_CONNECT", + "AWS_LAMBDA" + ], + "type": "string" + }, + "GraphQLDns": { + "type": "string" + }, + "GraphQLEndpointArn": { + "type": "string" + }, + "GraphQLUrl": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "LogConfig": { + "$ref": "#/definitions/LogConfig" + }, + "MergedApiExecutionRoleArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "OwnerContact": { + "type": "string" + }, + "RealtimeDns": { + "type": "string" + }, + "RealtimeUrl": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UserPoolConfig": { + "$ref": "#/definitions/UserPoolConfig" + }, + "Visibility": { + "type": "string" + }, + "XrayEnabled": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/ApiId", + "/properties/GraphQLEndpointArn", + "/properties/Id", + "/properties/GraphQLDns", + "/properties/GraphQLUrl", + "/properties/RealtimeDns", + "/properties/RealtimeUrl", + "/properties/Arn" + ], + "required": [ + "Name", + "AuthenticationType" + ], + "typeName": "AWS::AppSync::GraphQLApi" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-autoscaling-autoscalinggroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-autoscaling-autoscalinggroup.json new file mode 100644 index 0000000000..d51af44c3f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-autoscaling-autoscalinggroup.json @@ -0,0 +1,776 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/LaunchConfigurationName", + "/properties/VPCZoneIdentifier", + "/properties/PlacementGroup", + "/properties/LaunchTemplate", + "/properties/MixedInstancesPolicy" + ], + "createOnlyProperties": [ + "/properties/InstanceId", + "/properties/AutoScalingGroupName" + ], + "definitions": { + "AcceleratorCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceMaintenancePolicy": { + "additionalProperties": false, + "dependencies": { + "MaxHealthyPercentage": [ + "MinHealthyPercentage" + ], + "MinHealthyPercentage": [ + "MaxHealthyPercentage" + ] + }, + "properties": { + "MaxHealthyPercentage": { + "type": "integer" + }, + "MinHealthyPercentage": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceRequirements": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AcceleratorCountRequest" + }, + "AcceleratorManufacturers": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AcceleratorNames": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AcceleratorTotalMemoryMiBRequest" + }, + "AcceleratorTypes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AllowedInstanceTypes": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BareMetal": { + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/BaselineEbsBandwidthMbpsRequest" + }, + "BurstablePerformance": { + "type": "string" + }, + "CpuManufacturers": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "ExcludedInstanceTypes": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "InstanceGenerations": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "LocalStorage": { + "type": "string" + }, + "LocalStorageTypes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/MemoryGiBPerVCpuRequest" + }, + "MemoryMiB": { + "$ref": "#/definitions/MemoryMiBRequest" + }, + "NetworkBandwidthGbps": { + "$ref": "#/definitions/NetworkBandwidthGbpsRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/NetworkInterfaceCountRequest" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "integer" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "integer" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/TotalLocalStorageGBRequest" + }, + "VCpuCount": { + "$ref": "#/definitions/VCpuCountRequest" + } + }, + "type": "object" + }, + "InstancesDistribution": { + "additionalProperties": false, + "properties": { + "OnDemandAllocationStrategy": { + "type": "string" + }, + "OnDemandBaseCapacity": { + "type": "integer" + }, + "OnDemandPercentageAboveBaseCapacity": { + "type": "integer" + }, + "SpotAllocationStrategy": { + "type": "string" + }, + "SpotInstancePools": { + "type": "integer" + }, + "SpotMaxPrice": { + "type": "string" + } + }, + "type": "object" + }, + "LaunchTemplate": { + "additionalProperties": false, + "properties": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/LaunchTemplateSpecification" + }, + "Overrides": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/LaunchTemplateOverrides" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "LaunchTemplateSpecification" + ], + "type": "object" + }, + "LaunchTemplateOverrides": { + "additionalProperties": false, + "properties": { + "InstanceRequirements": { + "$ref": "#/definitions/InstanceRequirements" + }, + "InstanceType": { + "type": "string" + }, + "LaunchTemplateSpecification": { + "$ref": "#/definitions/LaunchTemplateSpecification" + }, + "WeightedCapacity": { + "type": "string" + } + }, + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "properties": { + "LaunchTemplateName": false + }, + "required": [ + "LaunchTemplateID" + ], + "type": "object" + }, + { + "properties": { + "LaunchTemplateID": false + }, + "required": [ + "LaunchTemplateName" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['LaunchTemplateID', 'LaunchTemplateName']", + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "LifecycleHookSpecification": { + "additionalProperties": false, + "properties": { + "DefaultResult": { + "type": "string" + }, + "HeartbeatTimeout": { + "type": "integer" + }, + "LifecycleHookName": { + "type": "string" + }, + "LifecycleTransition": { + "type": "string" + }, + "NotificationMetadata": { + "type": "string" + }, + "NotificationTargetARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "LifecycleHookName", + "LifecycleTransition" + ], + "type": "object" + }, + "MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "MetricsCollection": { + "additionalProperties": false, + "properties": { + "Granularity": { + "type": "string" + }, + "Metrics": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Granularity" + ], + "type": "object" + }, + "MixedInstancesPolicy": { + "additionalProperties": false, + "properties": { + "InstancesDistribution": { + "$ref": "#/definitions/InstancesDistribution" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplate" + } + }, + "required": [ + "LaunchTemplate" + ], + "type": "object" + }, + "NetworkBandwidthGbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "NotificationConfiguration": { + "additionalProperties": false, + "properties": { + "NotificationTypes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "TopicARN": { + "items": { + "type": "string" + }, + "type": [ + "string", + "array" + ] + } + }, + "required": [ + "TopicARN" + ], + "type": "object" + }, + "TagProperty": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "PropagateAtLaunch": { + "type": "boolean" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key", + "PropagateAtLaunch" + ], + "type": "object" + }, + "TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "VCpuCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + } + }, + "dependencies": { + "InstanceId": { + "properties": { + "LaunchConfigurationName": false, + "LaunchTemplate": false, + "MixedInstancesPolicy": false + }, + "type": "object" + }, + "LaunchConfigurationName": { + "properties": { + "InstanceId": false, + "LaunchTemplate": false, + "MixedInstancesPolicy": false + }, + "type": "object" + }, + "LaunchTemplate": { + "properties": { + "InstanceId": false, + "LaunchConfigurationName": false, + "MixedInstancesPolicy": false + }, + "type": "object" + } + }, + "deprecatedProperties": [ + "/properties/NotificationConfiguration" + ], + "description": "Resource Type definition for AWS::AutoScaling::AutoScalingGroup", + "handlers": { + "create": { + "permissions": [ + "autoscaling:*", + "cloudwatch:PutMetricAlarm", + "ec2:DescribeAccountAttributes", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeImages", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstances", + "ec2:DescribeInstanceTypes", + "ec2:DescribeInstanceTypeOfferings", + "ec2:DescribeKeyPairs", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DescribePlacementGroups", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSpotInstanceRequests", + "ec2:DescribeSubnets", + "ec2:DescribeVpcClassicLink", + "ec2:GetInstanceTypesFromInstanceRequirements", + "ec2:RunInstances", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeTargetGroups", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "managed-fleets:GetAutoScalingGroup", + "managed-fleets:CreateAutoScalingGroup", + "ssm:GetParameters" + ], + "timeoutInMinutes": 120 + }, + "delete": { + "permissions": [ + "autoscaling:*", + "managed-fleets:GetAutoScalingGroup", + "managed-fleets:DeleteAutoScalingGroup" + ], + "timeoutInMinutes": 180 + }, + "list": { + "permissions": [ + "autoscaling:*" + ] + }, + "read": { + "permissions": [ + "autoscaling:*", + "managed-fleets:GetAutoScalingGroup" + ] + }, + "update": { + "permissions": [ + "autoscaling:*", + "cloudwatch:PutMetricAlarm", + "ec2:DescribeAccountAttributes", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeImages", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstances", + "ec2:DescribeInstanceTypes", + "ec2:DescribeInstanceTypeOfferings", + "ec2:DescribeKeyPairs", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DescribePlacementGroups", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSpotInstanceRequests", + "ec2:DescribeSubnets", + "ec2:DescribeVpcClassicLink", + "ec2:GetInstanceTypesFromInstanceRequirements", + "ec2:RunInstances", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeTargetGroups", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "managed-fleets:GetAutoScalingGroup", + "managed-fleets:RegisterAutoScalingGroup", + "managed-fleets:DeregisterAutoScalingGroup", + "managed-fleets:UpdateAutoScalingGroup", + "ssm:GetParameters" + ], + "timeoutInMinutes": 480 + } + }, + "primaryIdentifier": [ + "/properties/AutoScalingGroupName" + ], + "properties": { + "AutoScalingGroupName": { + "type": "string" + }, + "AvailabilityZones": { + "awsType": "AvailabilityZones", + "insertionOrder": false, + "items": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "CapacityRebalance": { + "type": "boolean" + }, + "Context": { + "type": "string" + }, + "Cooldown": { + "type": "string" + }, + "DefaultInstanceWarmup": { + "type": "integer" + }, + "DesiredCapacity": { + "pattern": "^[0-9]+$", + "type": "string" + }, + "DesiredCapacityType": { + "type": "string" + }, + "HealthCheckGracePeriod": { + "type": "integer" + }, + "HealthCheckType": { + "enum": [ + "EC2", + "ELB" + ], + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceMaintenancePolicy": { + "$ref": "#/definitions/InstanceMaintenancePolicy" + }, + "LaunchConfigurationName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification" + }, + "LifecycleHookSpecificationList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/LifecycleHookSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "LoadBalancerNames": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "MaxInstanceLifetime": { + "type": "integer" + }, + "MaxSize": { + "pattern": "^[0-9]+$", + "type": "string" + }, + "MetricsCollection": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/MetricsCollection" + }, + "type": "array", + "uniqueItems": false + }, + "MinSize": { + "pattern": "^[0-9]+$", + "type": "string" + }, + "MixedInstancesPolicy": { + "$ref": "#/definitions/MixedInstancesPolicy" + }, + "NewInstancesProtectedFromScaleIn": { + "type": "boolean" + }, + "NotificationConfiguration": { + "$ref": "#/definitions/NotificationConfiguration" + }, + "NotificationConfigurations": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/NotificationConfiguration" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroup": { + "type": "string" + }, + "ServiceLinkedRoleARN": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TagProperty" + }, + "type": "array" + }, + "TargetGroupARNs": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "TerminationPolicies": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "VPCZoneIdentifier": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "propertyTransform": { + "/properties/LaunchConfigurationName": "InstanceId? AutoScalingGroupName : LaunchConfigurationName" + }, + "required": [ + "MinSize", + "MaxSize" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::AutoScaling::AutoScalingGroup", + "writeOnlyProperties": [ + "/properties/InstanceId" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-codedeploy-deploymentconfig.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-codedeploy-deploymentconfig.json deleted file mode 100644 index a37713685a..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-codedeploy-deploymentconfig.json +++ /dev/null @@ -1,173 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentConfigName", - "/properties/MinimumHealthyHosts", - "/properties/ComputePlatform", - "/properties/ZonalConfig", - "/properties/TrafficRoutingConfig" - ], - "definitions": { - "MinimumHealthyHosts": { - "additionalProperties": false, - "properties": { - "Type": { - "enum": [ - "HOST_COUNT", - "FLEET_PERCENT" - ], - "type": "string" - }, - "Value": { - "type": "integer" - } - }, - "required": [ - "Type", - "Value" - ], - "type": "object" - }, - "MinimumHealthyHostsPerZone": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "integer" - } - }, - "required": [ - "Type", - "Value" - ], - "type": "object" - }, - "TimeBasedCanary": { - "additionalProperties": false, - "properties": { - "CanaryInterval": { - "type": "integer" - }, - "CanaryPercentage": { - "type": "integer" - } - }, - "required": [ - "CanaryPercentage", - "CanaryInterval" - ], - "type": "object" - }, - "TimeBasedLinear": { - "additionalProperties": false, - "properties": { - "LinearInterval": { - "type": "integer" - }, - "LinearPercentage": { - "type": "integer" - } - }, - "required": [ - "LinearInterval", - "LinearPercentage" - ], - "type": "object" - }, - "TrafficRoutingConfig": { - "additionalProperties": false, - "properties": { - "TimeBasedCanary": { - "$ref": "#/definitions/TimeBasedCanary" - }, - "TimeBasedLinear": { - "$ref": "#/definitions/TimeBasedLinear" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "ZonalConfig": { - "additionalProperties": false, - "properties": { - "FirstZoneMonitorDurationInSeconds": { - "format": "int64", - "type": "integer" - }, - "MinimumHealthyHostsPerZone": { - "$ref": "#/definitions/MinimumHealthyHostsPerZone" - }, - "MonitorDurationInSeconds": { - "format": "int64", - "type": "integer" - } - }, - "required": [], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentConfig", - "handlers": { - "create": { - "permissions": [ - "codedeploy:CreateDeploymentConfig" - ] - }, - "delete": { - "permissions": [ - "codedeploy:GetDeploymentConfig", - "codedeploy:DeleteDeploymentConfig" - ] - }, - "list": { - "permissions": [ - "codedeploy:ListDeploymentConfigs" - ] - }, - "read": { - "permissions": [ - "codedeploy:GetDeploymentConfig" - ] - } - }, - "primaryIdentifier": [ - "/properties/DeploymentConfigName" - ], - "properties": { - "ComputePlatform": { - "description": "The destination platform type for the deployment (Lambda, Server, or ECS).", - "type": "string" - }, - "DeploymentConfigName": { - "description": "A name for the deployment configuration. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the deployment configuration name. For more information, see Name Type.", - "type": "string" - }, - "MinimumHealthyHosts": { - "$ref": "#/definitions/MinimumHealthyHosts", - "description": "The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value." - }, - "TrafficRoutingConfig": { - "$ref": "#/definitions/TrafficRoutingConfig", - "description": "The configuration that specifies how the deployment traffic is routed." - }, - "ZonalConfig": { - "$ref": "#/definitions/ZonalConfig", - "description": "The zonal deployment config that specifies how the zonal deployment behaves" - } - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-codedeploy", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::CodeDeploy::DeploymentConfig" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-codedeploy-deploymentgroup.json new file mode 100644 index 0000000000..208990a115 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-codedeploy-deploymentgroup.json @@ -0,0 +1,523 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentGroupName", + "/properties/ApplicationName" + ], + "definitions": { + "Alarm": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AlarmConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/Alarm" + }, + "type": "array", + "uniqueItems": true + }, + "Enabled": { + "type": "boolean" + }, + "IgnorePollAlarmFailure": { + "type": "boolean" + } + }, + "type": "object" + }, + "AutoRollbackConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Events": { + "items": { + "enum": [ + "DEPLOYMENT_FAILURE", + "DEPLOYMENT_STOP_ON_ALARM", + "DEPLOYMENT_STOP_ON_REQUEST" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "BlueGreenDeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "DeploymentReadyOption": { + "$ref": "#/definitions/DeploymentReadyOption" + }, + "GreenFleetProvisioningOption": { + "$ref": "#/definitions/GreenFleetProvisioningOption" + }, + "TerminateBlueInstancesOnDeploymentSuccess": { + "$ref": "#/definitions/BlueInstanceTerminationOption" + } + }, + "type": "object" + }, + "BlueInstanceTerminationOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "TerminationWaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "Deployment": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "IgnoreApplicationStopFailures": { + "type": "boolean" + }, + "Revision": { + "$ref": "#/definitions/RevisionLocation" + } + }, + "required": [ + "Revision" + ], + "type": "object" + }, + "DeploymentReadyOption": { + "additionalProperties": false, + "properties": { + "ActionOnTimeout": { + "type": "string" + }, + "WaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentStyle": { + "additionalProperties": false, + "properties": { + "DeploymentOption": { + "enum": [ + "WITH_TRAFFIC_CONTROL", + "WITHOUT_TRAFFIC_CONTROL" + ], + "type": "string" + }, + "DeploymentType": { + "enum": [ + "IN_PLACE", + "BLUE_GREEN" + ], + "type": "string" + } + }, + "type": "object" + }, + "EC2TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "EC2TagSet": { + "additionalProperties": false, + "properties": { + "Ec2TagSetList": { + "items": { + "$ref": "#/definitions/EC2TagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EC2TagSetListObject": { + "additionalProperties": false, + "properties": { + "Ec2TagGroup": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ECSService": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + } + }, + "required": [ + "ServiceName", + "ClusterName" + ], + "type": "object" + }, + "ELBInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "GitHubLocation": { + "additionalProperties": false, + "properties": { + "CommitId": { + "type": "string" + }, + "Repository": { + "type": "string" + } + }, + "required": [ + "Repository", + "CommitId" + ], + "type": "object" + }, + "GreenFleetProvisioningOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "type": "object" + }, + "LoadBalancerInfo": { + "additionalProperties": false, + "properties": { + "ElbInfoList": { + "items": { + "$ref": "#/definitions/ELBInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupPairInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupPairInfo" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSet": { + "additionalProperties": false, + "properties": { + "OnPremisesTagSetList": { + "items": { + "$ref": "#/definitions/OnPremisesTagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSetListObject": { + "additionalProperties": false, + "properties": { + "OnPremisesTagGroup": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "RevisionLocation": { + "additionalProperties": false, + "properties": { + "GitHubLocation": { + "$ref": "#/definitions/GitHubLocation" + }, + "RevisionType": { + "type": "string" + }, + "S3Location": { + "$ref": "#/definitions/S3Location" + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "BundleType": { + "type": "string" + }, + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupPairInfo": { + "additionalProperties": false, + "properties": { + "ProdTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + }, + "TargetGroups": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TestTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + } + }, + "type": "object" + }, + "TrafficRoute": { + "additionalProperties": false, + "properties": { + "ListenerArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerEvents": { + "items": { + "enum": [ + "DeploymentStart", + "DeploymentSuccess", + "DeploymentFailure", + "DeploymentStop", + "DeploymentRollback", + "DeploymentReady", + "InstanceStart", + "InstanceSuccess", + "InstanceFailure", + "InstanceReady" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "TriggerName": { + "type": "string" + }, + "TriggerTargetArn": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AlarmConfiguration": { + "$ref": "#/definitions/AlarmConfiguration" + }, + "ApplicationName": { + "type": "string" + }, + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AutoRollbackConfiguration" + }, + "AutoScalingGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BlueGreenDeploymentConfiguration": { + "$ref": "#/definitions/BlueGreenDeploymentConfiguration" + }, + "Deployment": { + "$ref": "#/definitions/Deployment" + }, + "DeploymentConfigName": { + "type": "string" + }, + "DeploymentGroupName": { + "type": "string" + }, + "DeploymentStyle": { + "$ref": "#/definitions/DeploymentStyle" + }, + "ECSServices": { + "items": { + "$ref": "#/definitions/ECSService" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagFilters": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagSet": { + "$ref": "#/definitions/EC2TagSet" + }, + "Id": { + "type": "string" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/LoadBalancerInfo" + }, + "OnPremisesInstanceTagFilters": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "OnPremisesTagSet": { + "$ref": "#/definitions/OnPremisesTagSet" + }, + "OutdatedInstancesStrategy": { + "type": "string" + }, + "ServiceRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TerminationHookEnabled": { + "type": "boolean" + }, + "TriggerConfigurations": { + "items": { + "$ref": "#/definitions/TriggerConfig" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "ServiceRoleArn" + ], + "typeName": "AWS::CodeDeploy::DeploymentGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-route.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-route.json new file mode 100644 index 0000000000..722dba73ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-route.json @@ -0,0 +1,129 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RouteTableId", + "/properties/DestinationCidrBlock", + "/properties/DestinationIpv6CidrBlock", + "/properties/DestinationPrefixListId" + ], + "description": "Resource Type definition for AWS::EC2::Route", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateRoute", + "ec2:DescribeRouteTables", + "ec2:DescribeNetworkInterfaces" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteRoute", + "ec2:DescribeRouteTables" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "RouteTableId": { + "$ref": "resource-schema.json#/properties/RouteTableId" + } + }, + "required": [ + "RouteTableId" + ] + }, + "permissions": [ + "ec2:DescribeRouteTables" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeRouteTables" + ] + }, + "update": { + "permissions": [ + "ec2:ReplaceRoute", + "ec2:DescribeRouteTables", + "ec2:DescribeNetworkInterfaces" + ] + } + }, + "primaryIdentifier": [ + "/properties/RouteTableId", + "/properties/CidrBlock" + ], + "properties": { + "CarrierGatewayId": { + "description": "The ID of the carrier gateway.", + "type": "string" + }, + "CidrBlock": { + "description": "The primary identifier of the resource generated by the service.", + "type": "string" + }, + "DestinationCidrBlock": { + "description": "The IPv4 CIDR block used for the destination match.", + "type": "string" + }, + "DestinationIpv6CidrBlock": { + "description": "The IPv6 CIDR block used for the destination match.", + "type": "string" + }, + "DestinationPrefixListId": { + "description": "The ID of managed prefix list, it's a set of one or more CIDR blocks.", + "type": "string" + }, + "EgressOnlyInternetGatewayId": { + "description": "The ID of the egress-only internet gateway.", + "type": "string" + }, + "GatewayId": { + "description": "The ID of an internet gateway or virtual private gateway attached to your VPC.", + "type": "string" + }, + "InstanceId": { + "description": "The ID of a NAT instance in your VPC.", + "type": "string" + }, + "LocalGatewayId": { + "description": "The ID of the local gateway.", + "type": "string" + }, + "NatGatewayId": { + "description": "The ID of a NAT gateway.", + "type": "string" + }, + "NetworkInterfaceId": { + "description": "The ID of the network interface.", + "type": "string" + }, + "RouteTableId": { + "description": "The ID of the route table. The routing table must be associated with the same VPC that the virtual private gateway is attached to.", + "type": "string" + }, + "TransitGatewayId": { + "description": "The ID of a transit gateway.", + "type": "string" + }, + "VpcEndpointId": { + "description": "The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.", + "type": "string" + }, + "VpcPeeringConnectionId": { + "description": "The ID of a VPC peering connection.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CidrBlock" + ], + "required": [ + "RouteTableId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2", + "tagging": { + "taggable": false + }, + "typeName": "AWS::EC2::Route" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-subnetnetworkaclassociation.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-subnetnetworkaclassociation.json deleted file mode 100644 index 190241b970..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-subnetnetworkaclassociation.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SubnetId", - "/properties/NetworkAclId" - ], - "description": "Resource Type definition for AWS::EC2::SubnetNetworkAclAssociation", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AssociationId": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "NetworkAclId": { - "type": "string" - }, - "SubnetId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/AssociationId" - ], - "required": [ - "NetworkAclId", - "SubnetId" - ], - "typeName": "AWS::EC2::SubnetNetworkAclAssociation" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-elasticloadbalancingv2-loadbalancer.json index 2f5431c83f..48793c4fbd 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-elasticloadbalancingv2-loadbalancer.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-elasticloadbalancingv2-loadbalancer.json @@ -113,6 +113,9 @@ "DNSName": { "type": "string" }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, "Id": { "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-emr-cluster.json new file mode 100644 index 0000000000..7ce37fccb6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-emr-cluster.json @@ -0,0 +1,858 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Steps", + "/properties/EbsRootVolumeSize", + "/properties/SecurityConfiguration", + "/properties/ScaleDownBehavior", + "/properties/Configurations", + "/properties/ReleaseLabel", + "/properties/BootstrapActions", + "/properties/EbsRootVolumeIops", + "/properties/KerberosAttributes", + "/properties/ServiceRole", + "/properties/LogEncryptionKmsKeyId", + "/properties/Name", + "/properties/EbsRootVolumeThroughput", + "/properties/JobFlowRole", + "/properties/AdditionalInfo", + "/properties/LogUri", + "/properties/CustomAmiId", + "/properties/PlacementGroupConfigs", + "/properties/OSReleaseLabel", + "/properties/AutoScalingRole", + "/properties/Applications" + ], + "definitions": { + "Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ScalingRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/ScriptBootstrapActionConfig" + } + }, + "required": [ + "ScriptBootstrapAction", + "Name" + ], + "type": "object" + }, + "CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "EvaluationPeriods": { + "type": "integer" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "integer" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "ComparisonOperator", + "Period", + "Threshold" + ], + "type": "object" + }, + "ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "integer" + }, + "MaximumCoreCapacityUnits": { + "type": "integer" + }, + "MaximumOnDemandCapacityUnits": { + "type": "integer" + }, + "MinimumCapacityUnits": { + "type": "integer" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "UnitType", + "MaximumCapacityUnits", + "MinimumCapacityUnits" + ], + "type": "object" + }, + "Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "integer" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/EbsBlockDeviceConfig" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/KeyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/InstanceTypeConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchSpecifications": { + "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "integer" + }, + "TargetSpotCapacity": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/OnDemandProvisioningSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/SpotProvisioningSpecification" + } + }, + "type": "object" + }, + "InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceType": { + "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", + "type": "string" + }, + "WeightedCapacity": { + "type": "integer" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/ComputeLimits" + } + }, + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "PlacementGroupConfig": { + "additionalProperties": false, + "properties": { + "InstanceRole": { + "type": "string" + }, + "PlacementStrategy": { + "type": "string" + } + }, + "required": [ + "InstanceRole" + ], + "type": "object" + }, + "PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/ScalingTrigger" + } + }, + "required": [ + "Action", + "Trigger", + "Name" + ], + "type": "object" + }, + "ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BlockDurationMinutes": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "integer" + } + }, + "required": [ + "TimeoutDurationMinutes", + "TimeoutAction" + ], + "type": "object" + }, + "StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "integer" + }, + "SizeInGB": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EMR::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/Application" + }, + "type": "array", + "uniqueItems": true + }, + "AutoScalingRole": { + "type": "string" + }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AutoTerminationPolicy" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/BootstrapActionConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeIops": { + "type": "integer" + }, + "EbsRootVolumeSize": { + "type": "integer" + }, + "EbsRootVolumeThroughput": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Instances": { + "$ref": "#/definitions/JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/KerberosAttributes" + }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, + "LogUri": { + "type": "string" + }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/ManagedScalingPolicy" + }, + "MasterPublicDNS": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OSReleaseLabel": { + "type": "string" + }, + "PlacementGroupConfigs": { + "items": { + "$ref": "#/definitions/PlacementGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "StepConcurrencyLevel": { + "type": "integer" + }, + "Steps": { + "items": { + "$ref": "#/definitions/StepConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/MasterPublicDNS" + ], + "required": [ + "Instances", + "ServiceRole", + "JobFlowRole", + "Name" + ], + "typeName": "AWS::EMR::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-emr-studiosessionmapping.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-emr-studiosessionmapping.json deleted file mode 100644 index 793e843961..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-emr-studiosessionmapping.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StudioId", - "/properties/IdentityType", - "/properties/IdentityName" - ], - "definitions": { - "IamPolicyArn": { - "pattern": "^arn:aws(-(cn|us-gov))?:iam::([0-9]{12})?:policy\\/[^.]+$", - "type": "string" - } - }, - "description": "An example resource schema demonstrating some basic constructs and validation rules.", - "documentationUrl": "https://docs.aws.amazon.com/cli/latest/reference/emr/create-studio-session-mapping.html", - "handlers": { - "create": { - "permissions": [ - "elasticmapreduce:CreateStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:ListDirectoryAssociations", - "sso:GetProfile", - "sso:ListProfiles", - "sso:AssociateProfile" - ] - }, - "delete": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "elasticmapreduce:DeleteStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance", - "sso:ListDirectoryAssociations", - "sso:GetProfile", - "sso:ListProfiles", - "sso:DisassociateProfile" - ] - }, - "list": { - "permissions": [ - "elasticmapreduce:ListStudioSessionMappings" - ] - }, - "read": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance" - ] - }, - "update": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "elasticmapreduce:UpdateStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance" - ] - } - }, - "primaryIdentifier": [ - "/properties/StudioId", - "/properties/IdentityType", - "/properties/IdentityName" - ], - "properties": { - "IdentityName": { - "description": "The name of the user or group. For more information, see UserName and DisplayName in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId must be specified.", - "type": "string" - }, - "IdentityType": { - "description": "Specifies whether the identity to map to the Studio is a user or a group.", - "enum": [ - "USER", - "GROUP" - ], - "type": "string" - }, - "SessionPolicyArn": { - "$ref": "#/definitions/IamPolicyArn", - "description": "The Amazon Resource Name (ARN) for the session policy that will be applied to the user or group. Session policies refine Studio user permissions without the need to use multiple IAM user roles." - }, - "StudioId": { - "description": "The ID of the Amazon EMR Studio to which the user or group will be mapped.", - "maxLength": 256, - "minLength": 4, - "pattern": "^es-[0-9A-Z]+", - "type": "string" - } - }, - "required": [ - "StudioId", - "IdentityName", - "IdentityType", - "SessionPolicyArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::EMR::StudioSessionMapping" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-eventschemas-discoverer.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-eventschemas-discoverer.json deleted file mode 100644 index 791d433995..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-eventschemas-discoverer.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SourceArn" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EventSchemas::Discoverer", - "primaryIdentifier": [ - "/properties/DiscovererId" - ], - "properties": { - "CrossAccount": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DiscovererArn": { - "type": "string" - }, - "DiscovererId": { - "type": "string" - }, - "SourceArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/DiscovererId", - "/properties/DiscovererArn" - ], - "required": [ - "SourceArn" - ], - "typeName": "AWS::EventSchemas::Discoverer" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-imagebuilder-image.json new file mode 100644 index 0000000000..5582329923 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-imagebuilder-image.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ImageRecipeArn", + "/properties/ContainerRecipeArn", + "/properties/InfrastructureConfigurationArn", + "/properties/DistributionConfigurationArn", + "/properties/ImageTestsConfiguration", + "/properties/ImageScanningConfiguration", + "/properties/EnhancedImageMetadataEnabled", + "/properties/Tags" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Contains settings for Image Builder image resource and container image scans.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "The image tests configuration used when creating this image.", + "properties": { + "ImageTestsEnabled": { + "description": "ImageTestsEnabled", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "TimeoutMinutes", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::ImageBuilder::Image", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:GetImage", + "imagebuilder:CreateImage", + "imagebuilder:TagResource", + "inspector2:BatchGetAccountStatus" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "imagebuilder:GetImage", + "imagebuilder:DeleteImage", + "imagebuilder:UnTagResource", + "imagebuilder:CancelImageCreation" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListImages" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImage" + ] + } + }, + "oneOf": [ + { + "required": [ + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ImageId": { + "description": "The AMI ID of the EC2 AMI in current region.", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration used when creating this image." + }, + "ImageUri": { + "description": "URI for containers created in current Region with default ECR image tag", + "type": "string" + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", + "type": "string" + }, + "Name": { + "description": "The name of the image.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the image.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Name", + "/properties/ImageId", + "/properties/ImageUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Image" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-imagebuilder-imagepipeline.json new file mode 100644 index 0000000000..5b70e0ff38 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-imagebuilder-imagepipeline.json @@ -0,0 +1,213 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "Image tests configuration.", + "properties": { + "ImageTestsEnabled": { + "description": "Defines if tests should be executed when building this image.", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "The maximum time in minutes that tests are permitted to run.", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "description": "The schedule of the image pipeline.", + "properties": { + "PipelineExecutionStartCondition": { + "description": "The condition configures when the pipeline should trigger a new image build.", + "enum": [ + "EXPRESSION_MATCH_ONLY", + "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + ], + "type": "string" + }, + "ScheduleExpression": { + "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:CreateImagePipeline", + "imagebuilder:GetWorkflow", + "inspector2:BatchGetAccountStatus" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:UnTagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:DeleteImagePipeline" + ] + }, + "list": { + "permissions": [ + "imagebuilder:ListImagePipelines" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImagePipeline" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "imagebuilder:GetImagePipeline", + "imagebuilder:UpdateImagePipeline", + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Name", + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "Name", + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image pipeline.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "Description": { + "description": "The description of the image pipeline.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration of the image pipeline." + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", + "type": "string" + }, + "Name": { + "description": "The name of the image pipeline.", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule", + "description": "The schedule of the image pipeline." + }, + "Status": { + "description": "The status of the image pipeline.", + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags of this image pipeline.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::ImagePipeline" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbcluster.json new file mode 100644 index 0000000000..9a18b7d8e4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbcluster.json @@ -0,0 +1,545 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbcluster/serverless_exclusive" + ], + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "description": "Describes an AWS Identity and Access Management (IAM) role that is associated with a DB cluster.", + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. For the list of supported feature names, see DBEngineVersion in the Amazon RDS API Reference.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB cluster.", + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The connection endpoint for the DB cluster.", + "type": "string" + }, + "Port": { + "description": "The port number that will accept connections on this DB cluster.", + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS key identifier that is used to encrypt the secret.", + "type": "string" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the secret.", + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The reader endpoint for the DB cluster.", + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "description": "The ScalingConfiguration property type specifies the scaling configuration of an Aurora Serverless DB cluster.", + "properties": { + "AutoPause": { + "description": "A value that indicates whether to allow or disallow automatic pause for an Aurora DB cluster in serverless DB engine mode. A DB cluster can be paused only when it's idle (it has no connections).", + "type": "boolean" + }, + "MaxCapacity": { + "description": "The maximum capacity for an Aurora DB cluster in serverless DB engine mode.\nFor Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.\nFor Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.\nThe maximum capacity must be greater than or equal to the minimum capacity.", + "type": "integer" + }, + "MinCapacity": { + "description": "The minimum capacity for an Aurora DB cluster in serverless DB engine mode.\nFor Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.\nFor Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.\nThe minimum capacity must be less than or equal to the maximum capacity.", + "type": "integer" + }, + "SecondsBeforeTimeout": { + "description": "The amount of time, in seconds, that Aurora Serverless v1 tries to find a scaling point to perform seamless scaling before enforcing the timeout action.\nThe default is 300.", + "type": "integer" + }, + "SecondsUntilAutoPause": { + "description": "The time, in seconds, before an Aurora DB cluster in serverless mode is paused.", + "type": "integer" + }, + "TimeoutAction": { + "description": "The action to take when the timeout is reached, either ForceApplyCapacityChange or RollbackCapacityChange.\nForceApplyCapacityChange sets the capacity to the specified value as soon as possible.\nRollbackCapacityChange, the default, ignores the capacity change if a scaling point isn't found in the timeout period.\n\nFor more information, see Autoscaling for Aurora Serverless v1 in the Amazon Aurora User Guide.", + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "description": "Contains the scaling configuration of an Aurora Serverless v2 DB cluster.", + "properties": { + "MaxCapacity": { + "description": "The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 40, 40.5, 41, and so on. The largest value that you can use is 128.", + "maximum": 128, + "minimum": 0.5, + "type": "number" + }, + "MinCapacity": { + "description": "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5.", + "maximum": 128, + "minimum": 0.5, + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SnapshotIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false + } + }, + "SourceDBClusterIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "description": "The AWS::RDS::DBCluster resource creates an Amazon Aurora DB cluster.", + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeEvents", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "description": "The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.", + "type": "integer" + }, + "AssociatedRoles": { + "description": "Provides a list of the AWS Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other AWS services on your behalf.", + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "description": "A value that indicates whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.", + "type": "boolean" + }, + "AvailabilityZones": { + "awsType": "AvailabilityZones", + "description": "A list of Availability Zones (AZs) where instances in the DB cluster can be created. For information on AWS Regions and Availability Zones, see Choosing the Regions and Availability Zones in the Amazon Aurora User Guide.", + "items": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "default": 0, + "description": "The target backtrack window, in seconds. To disable backtracking, set this value to 0.", + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "description": "The number of days for which automated backups are retained.", + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them.", + "type": "boolean" + }, + "DBClusterArn": { + "description": "The Amazon Resource Name (ARN) for the DB cluster.", + "type": "string" + }, + "DBClusterIdentifier": { + "description": "The DB cluster identifier. This parameter is stored as a lowercase string.", + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "description": "The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6g.xlarge.", + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "description": "The name of the DB cluster parameter group to associate with this DB cluster.", + "type": "string" + }, + "DBClusterResourceId": { + "description": "The AWS Region-unique, immutable identifier for the DB cluster.", + "type": "string" + }, + "DBInstanceParameterGroupName": { + "description": "The name of the DB parameter group to apply to all instances of the DB cluster.", + "type": "string" + }, + "DBSubnetGroupName": { + "description": "A DB subnet group that you want to associate with this DB cluster.", + "type": "string" + }, + "DBSystemId": { + "description": "Reserved for future use.", + "type": "string" + }, + "DatabaseName": { + "description": "The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see Naming Constraints in the Amazon RDS User Guide.", + "type": "string" + }, + "DeletionProtection": { + "description": "A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.", + "type": "boolean" + }, + "Domain": { + "description": "The Active Directory directory ID to create the DB cluster in.", + "type": "string" + }, + "DomainIAMRoleName": { + "description": "Specify the name of the IAM role to be used when making API calls to the Directory Service.", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "description": "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "description": "Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database.", + "type": "boolean" + }, + "EnableHttpEndpoint": { + "description": "A value that indicates whether to enable the HTTP endpoint for an Aurora Serverless DB cluster. By default, the HTTP endpoint is disabled.", + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "description": "The name of the database engine to be used for this DB cluster. Valid Values: aurora (for MySQL 5.6-compatible Aurora), aurora-mysql (for MySQL 5.7-compatible Aurora), and aurora-postgresql", + "type": "string" + }, + "EngineMode": { + "description": "The DB engine mode of the DB cluster, either provisioned, serverless, parallelquery, global, or multimaster.", + "type": "string" + }, + "EngineVersion": { + "description": "The version number of the database engine to use.", + "type": "string" + }, + "GlobalClusterIdentifier": { + "description": "If you are configuring an Aurora global database cluster and want your Aurora DB cluster to be a secondary member in the global database cluster, specify the global cluster ID of the global database cluster. To define the primary database cluster of the global cluster, use the AWS::RDS::GlobalCluster resource.\n\nIf you aren't configuring a global database cluster, don't specify this property.", + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "description": "The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.", + "type": "integer" + }, + "KmsKeyId": { + "description": "The Amazon Resource Name (ARN) of the AWS Key Management Service master key that is used to encrypt the database instances in the DB cluster, such as arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. If you enable the StorageEncrypted property but don't specify this property, the default master key is used. If you specify this property, you must set the StorageEncrypted property to true.", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "A value that indicates whether to manage the master user password with AWS Secrets Manager.", + "type": "boolean" + }, + "MasterUserPassword": { + "description": "The master password for the DB instance.", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret", + "description": "Contains the secret managed by RDS in AWS Secrets Manager for the master user password." + }, + "MasterUsername": { + "description": "The name of the master user for the DB cluster. You must specify MasterUsername, unless you specify SnapshotIdentifier. In that case, don't specify MasterUsername.", + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify 0. The default is 0.", + "type": "integer" + }, + "MonitoringRoleArn": { + "description": "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.", + "type": "string" + }, + "NetworkType": { + "description": "The network type of the DB cluster.", + "type": "string" + }, + "PerformanceInsightsEnabled": { + "description": "A value that indicates whether to turn on Performance Insights for the DB cluster.", + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "description": "The Amazon Web Services KMS key identifier for encryption of Performance Insights data.", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "description": "The amount of time, in days, to retain Performance Insights data.", + "type": "integer" + }, + "Port": { + "description": "The port number on which the instances in the DB cluster accept connections. Default: 3306 if engine is set as aurora or 5432 if set to aurora-postgresql.", + "type": "integer" + }, + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter. The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "description": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.", + "type": "string" + }, + "PubliclyAccessible": { + "description": "A value that indicates whether the DB cluster is publicly accessible.", + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "description": "The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a Read Replica.", + "type": "string" + }, + "RestoreToTime": { + "description": "The date and time to restore the DB cluster to. Value must be a time in Universal Coordinated Time (UTC) format. An example: 2015-03-07T23:45:00Z", + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "description": "The type of restore to be performed. You can specify one of the following values:\nfull-copy - The new DB cluster is restored as a full copy of the source DB cluster.\ncopy-on-write - The new DB cluster is restored as a clone of the source DB cluster.", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration", + "description": "The ScalingConfiguration property type specifies the scaling configuration of an Aurora Serverless DB cluster." + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration", + "description": "Contains the scaling configuration of an Aurora Serverless v2 DB cluster." + }, + "SnapshotIdentifier": { + "description": "The identifier for the DB snapshot or DB cluster snapshot to restore from.\nYou can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot. However, you can use only the ARN to specify a DB snapshot.\nAfter you restore a DB cluster with a SnapshotIdentifier property, you must specify the same SnapshotIdentifier property for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed. However, if you don't specify the SnapshotIdentifier property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, the DB cluster is restored from the specified SnapshotIdentifier property, and the original DB cluster is deleted.", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "description": "The identifier of the source DB cluster from which to restore.", + "type": "string" + }, + "SourceRegion": { + "description": "The AWS Region which contains the source DB cluster when replicating a DB cluster. For example, us-east-1.", + "type": "string" + }, + "StorageEncrypted": { + "description": "Indicates whether the DB instance is encrypted.\nIf you specify the DBClusterIdentifier, SnapshotIdentifier, or SourceDBInstanceIdentifier property, don't specify this property. The value is inherited from the cluster, snapshot, or source DB instance.", + "type": "boolean" + }, + "StorageType": { + "description": "Specifies the storage type to be associated with the DB cluster.", + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "description": "A value that indicates whether to restore the DB cluster to the latest restorable backup time. By default, the DB cluster is not restored to the latest restorable backup time.", + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "description": "A list of EC2 VPC security groups to associate with this DB cluster.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : false", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "typeName": "AWS::RDS::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/MasterUserPassword", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbinstance.json new file mode 100644 index 0000000000..4c2f423ae2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbinstance.json @@ -0,0 +1,697 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbinstance/aurora_exclusive" + ], + "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": { + "description": "The CA identifier of the CA certificate used for the DB instance's server certificate.", + "type": "string" + }, + "ValidTill": { + "description": "The expiration date of the DB instance\u2019s server certificate.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "DBInstanceRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. IAM roles that are associated with a DB instance grant permission for the DB instance to access other AWS services on your behalf.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB instance.", + "type": "string" + } + }, + "required": [ + "FeatureName", + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "Specifies the DNS address of the DB instance.", + "type": "string" + }, + "HostedZoneId": { + "description": "Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.", + "type": "string" + }, + "Port": { + "description": "Specifies the port that the database engine is listening on.", + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS key identifier that is used to encrypt the secret.", + "type": "string" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the secret.", + "type": "string" + } + }, + "type": "object" + }, + "ProcessorFeature": { + "additionalProperties": false, + "properties": { + "Name": { + "description": "The name of the processor feature. Valid names are coreCount and threadsPerCore.", + "enum": [ + "coreCount", + "threadsPerCore" + ], + "type": "string" + }, + "Value": { + "description": "The value of a processor feature name.", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SourceDBInstanceIdentifier": { + "properties": { + "CharacterSetName": false, + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "deprecatedProperties": [ + "/properties/TdeCredentialArn", + "/properties/TdeCredentialPassword" + ], + "description": "The AWS::RDS::DBInstance resource creates an Amazon RDS DB instance.", + "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: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": { + "description": "The amount of storage (in gigabytes) to be initially allocated for the database instance.", + "pattern": "^[0-9]*$", + "type": "string" + }, + "AllowMajorVersionUpgrade": { + "description": "A value that indicates whether major version upgrades are allowed. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible.", + "type": "boolean" + }, + "AssociatedRoles": { + "description": "The AWS Identity and Access Management (IAM) roles associated with the DB instance.", + "items": { + "$ref": "#/definitions/DBInstanceRole" + }, + "type": "array" + }, + "AutoMinorVersionUpgrade": { + "description": "A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are applied automatically.", + "type": "boolean" + }, + "AutomaticBackupReplicationRegion": { + "description": "Enables replication of automated backups to a different Amazon Web Services Region.", + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "description": "The Availability Zone (AZ) where the database will be created. For information on AWS Regions and Availability Zones.", + "type": "string" + }, + "BackupRetentionPeriod": { + "default": 1, + "description": "The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.", + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CACertificateIdentifier": { + "description": "The identifier of the CA certificate for this DB instance.", + "type": "string" + }, + "CertificateDetails": { + "$ref": "#/definitions/CertificateDetails", + "description": "Returns the details of the DB instance's server certificate." + }, + "CertificateRotationRestart": { + "description": "A value that indicates whether the DB instance is restarted when you rotate your SSL/TLS certificate.\nBy default, the DB instance is restarted when you rotate your SSL/TLS certificate. The certificate is not updated until the DB instance is restarted.\nIf you are using SSL/TLS to connect to the DB instance, follow the appropriate instructions for your DB engine to rotate your SSL/TLS certificate\nThis setting doesn't apply to RDS Custom.", + "type": "boolean" + }, + "CharacterSetName": { + "description": "For supported engines, indicates that the DB instance should be associated with the specified character set.", + "type": "string" + }, + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied.", + "type": "boolean" + }, + "CustomIAMInstanceProfile": { + "description": "The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The instance profile must meet the following requirements:\n * The profile must exist in your account.\n * The profile must have an IAM role that Amazon EC2 has permissions to assume.\n * The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom .\nFor the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide .\n\nThis setting is required for RDS Custom.", + "type": "string" + }, + "DBClusterIdentifier": { + "description": "The identifier of the DB cluster that the instance will belong to.", + "type": "string" + }, + "DBClusterSnapshotIdentifier": { + "description": "The identifier for the RDS for MySQL Multi-AZ DB cluster snapshot to restore from. For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide .\n\nConstraints:\n * Must match the identifier of an existing Multi-AZ DB cluster snapshot.\n * Can't be specified when DBSnapshotIdentifier is specified.\n * Must be specified when DBSnapshotIdentifier isn't specified.\n * If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the DBClusterSnapshotIdentifier must be the ARN of the shared snapshot.\n * Can't be the identifier of an Aurora DB cluster snapshot.\n * Can't be the identifier of an RDS for PostgreSQL Multi-AZ DB cluster snapshot.", + "type": "string" + }, + "DBInstanceArn": { + "description": "The Amazon Resource Name (ARN) for the DB instance.", + "type": "string" + }, + "DBInstanceClass": { + "cfnRegionSchema": "aws_rds_dbinstance/dbinstanceclass_enum", + "description": "The compute and memory capacity of the DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines.", + "type": "string" + }, + "DBInstanceIdentifier": { + "description": "A name for the DB instance. If you specify a name, AWS CloudFormation converts it to lowercase. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the DB instance.", + "maxLength": 63, + "minLength": 1, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBName": { + "description": "The meaning of this parameter differs according to the database engine you use.", + "type": "string" + }, + "DBParameterGroupName": { + "description": "The name of an existing DB parameter group or a reference to an AWS::RDS::DBParameterGroup resource created in the template.", + "type": "string" + }, + "DBSecurityGroups": { + "description": "A list of the DB security groups to assign to the DB instance. The list can include both the name of existing DB security groups or references to AWS::RDS::DBSecurityGroup resources created in the template.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "DBSnapshotIdentifier": { + "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.", + "type": "string" + }, + "DBSubnetGroupName": { + "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC.", + "type": "string" + }, + "DBSystemId": { + "description": "The Oracle system ID (Oracle SID) for a container database (CDB). The Oracle SID is also the name of the CDB. This setting is valid for RDS Custom only.", + "type": "string" + }, + "DbiResourceId": { + "description": "The AWS Region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB instance is accessed.", + "type": "string" + }, + "DedicatedLogVolume": { + "description": "Indicates whether the DB instance has a dedicated log volume (DLV) enabled.", + "type": "boolean" + }, + "DeleteAutomatedBackups": { + "description": "A value that indicates whether to remove automated backups immediately after the DB instance is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB instance is deleted.", + "type": "boolean" + }, + "DeletionProtection": { + "description": "A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.", + "type": "boolean" + }, + "Domain": { + "description": "The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain.", + "type": "string" + }, + "DomainAuthSecretArn": { + "description": "The ARN for the Secrets Manager secret with the credentials for the user joining the domain.", + "type": "string" + }, + "DomainDnsIps": { + "description": "The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers.", + "items": { + "type": "string" + }, + "type": "array" + }, + "DomainFqdn": { + "description": "The fully qualified domain name (FQDN) of an Active Directory domain.", + "type": "string" + }, + "DomainIAMRoleName": { + "description": "Specify the name of the IAM role to be used when making API calls to the Directory Service.", + "type": "string" + }, + "DomainOu": { + "description": "The Active Directory organizational unit for your DB instance to join.", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "description": "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used.", + "items": { + "type": "string" + }, + "type": "array" + }, + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.", + "type": "boolean" + }, + "EnablePerformanceInsights": { + "description": "A value that indicates whether to enable Performance Insights for the DB instance.", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint", + "description": "Specifies the connection endpoint." + }, + "Engine": { + "description": "The name of the database engine that you want to use for this DB instance.", + "type": "string" + }, + "EngineVersion": { + "description": "The version number of the database engine to use.", + "type": "string" + }, + "Iops": { + "description": "The number of I/O operations per second (IOPS) that the database provisions.", + "type": "integer" + }, + "KmsKeyId": { + "description": "The ARN of the AWS Key Management Service (AWS KMS) master key that's used to encrypt the DB instance.", + "type": "string" + }, + "LicenseModel": { + "description": "License model information for this DB instance.", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "A value that indicates whether to manage the master user password with AWS Secrets Manager.", + "type": "boolean" + }, + "MasterUserPassword": { + "description": "The password for the master user.", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret", + "description": "Contains the secret managed by RDS in AWS Secrets Manager for the master user password." + }, + "MasterUsername": { + "description": "The master user name for the DB instance.", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", + "type": "string" + }, + "MaxAllocatedStorage": { + "description": "The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.", + "type": "integer" + }, + "MonitoringInterval": { + "default": 0, + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0.", + "type": "integer" + }, + "MonitoringRoleArn": { + "description": "The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs.", + "type": "string" + }, + "MultiAZ": { + "description": "Specifies whether the database instance is a multiple Availability Zone deployment.", + "type": "boolean" + }, + "NcharCharacterSetName": { + "description": "The name of the NCHAR character set for the Oracle DB instance. This parameter doesn't apply to RDS Custom.", + "type": "string" + }, + "NetworkType": { + "description": "The network type of the DB cluster.", + "type": "string" + }, + "OptionGroupName": { + "description": "Indicates that the DB instance should be associated with the specified option group.", + "type": "string" + }, + "PerformanceInsightsKMSKeyId": { + "description": "The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "description": "The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).", + "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": { + "description": "The port number on which the database accepts connections.", + "pattern": "^\\d*$", + "type": "string" + }, + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter.", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "description": "he weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).", + "type": "string" + }, + "ProcessorFeatures": { + "description": "The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.", + "items": { + "$ref": "#/definitions/ProcessorFeature" + }, + "type": "array" + }, + "PromotionTier": { + "default": 1, + "description": "A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance.", + "maximum": 15, + "minimum": 0, + "type": "integer" + }, + "PubliclyAccessible": { + "description": "Indicates whether the DB instance is an internet-facing instance. If you specify true, AWS CloudFormation creates an instance with a publicly resolvable DNS name, which resolves to a public IP address. If you specify false, AWS CloudFormation creates an internal instance with a DNS name that resolves to a private IP address.", + "type": "boolean" + }, + "ReplicaMode": { + "description": "The open mode of an Oracle read replica. The default is open-read-only.", + "type": "string" + }, + "RestoreTime": { + "description": "The date and time to restore from.", + "format": "date-time", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "description": "The identifier of the Multi-AZ DB cluster that will act as the source for the read replica. Each DB cluster can have up to 15 read replicas.", + "type": "string" + }, + "SourceDBInstanceAutomatedBackupsArn": { + "description": "The Amazon Resource Name (ARN) of the replicated automated backups from which to restore.", + "type": "string" + }, + "SourceDBInstanceIdentifier": { + "description": "If you want to create a Read Replica DB instance, specify the ID of the source DB instance. Each DB instance can have a limited number of Read Replicas.", + "type": "string" + }, + "SourceDbiResourceId": { + "description": "The resource ID of the source DB instance from which to restore.", + "type": "string" + }, + "SourceRegion": { + "description": "The ID of the region that contains the source DB instance for the Read Replica.", + "type": "string" + }, + "StorageEncrypted": { + "description": "A value that indicates whether the DB instance is encrypted. By default, it isn't encrypted.", + "type": "boolean" + }, + "StorageThroughput": { + "description": "Specifies the storage throughput for the DB instance.", + "type": "integer" + }, + "StorageType": { + "description": "Specifies the storage type to be associated with the DB instance.", + "type": "string" + }, + "Tags": { + "description": "Tags to assign to the DB instance.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TdeCredentialArn": { + "description": "The ARN from the key store with which to associate the instance for TDE encryption.", + "type": "string" + }, + "TdeCredentialPassword": { + "description": "The password for the given ARN from the key store in order to access the device.", + "type": "string" + }, + "Timezone": { + "description": "The time zone of the DB instance. The time zone parameter is currently supported only by Microsoft SQL Server.", + "type": "string" + }, + "UseDefaultProcessorFeatures": { + "description": "A value that indicates whether the DB instance class of the DB instance uses its default processor features.", + "type": "boolean" + }, + "UseLatestRestorableTime": { + "description": "A value that indicates whether the DB instance is restored from the latest backup time. By default, the DB instance isn't restored from the latest backup time.", + "type": "boolean" + }, + "VPCSecurityGroups": { + "description": "A list of the VPC security group IDs to assign to the DB instance. The list can include both the physical IDs of existing VPC security groups and references to AWS::EC2::SecurityGroup resources created in the template.", + "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/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/ap_southeast_3/aws-s3-bucket.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-s3-bucket.json deleted file mode 100644 index 5f53f45913..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-s3-bucket.json +++ /dev/null @@ -1,1645 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/BucketName", - "/properties/ObjectLockEnabled" - ], - "definitions": { - "AbortIncompleteMultipartUpload": { - "additionalProperties": false, - "description": "Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload.", - "properties": { - "DaysAfterInitiation": { - "description": "Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload.", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "DaysAfterInitiation" - ], - "type": "object" - }, - "AccelerateConfiguration": { - "additionalProperties": false, - "properties": { - "AccelerationStatus": { - "description": "Configures the transfer acceleration state for an Amazon S3 bucket.", - "enum": [ - "Enabled", - "Suspended" - ], - "type": "string" - } - }, - "required": [ - "AccelerationStatus" - ], - "type": "object" - }, - "AccessControlTranslation": { - "additionalProperties": false, - "description": "Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS account that owns the source object.", - "properties": { - "Owner": { - "const": "Destination", - "type": "string" - } - }, - "required": [ - "Owner" - ], - "type": "object" - }, - "AnalyticsConfiguration": { - "additionalProperties": false, - "description": "Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.", - "properties": { - "Id": { - "description": "The ID that identifies the analytics configuration.", - "type": "string" - }, - "Prefix": { - "description": "The prefix that an object must have to be included in the analytics results.", - "type": "string" - }, - "StorageClassAnalysis": { - "$ref": "#/definitions/StorageClassAnalysis" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "StorageClassAnalysis", - "Id" - ], - "type": "object" - }, - "Arn": { - "description": "the Amazon Resource Name (ARN) of the specified bucket.", - "type": "string" - }, - "BucketEncryption": { - "additionalProperties": false, - "description": "Specifies default encryption for a bucket using server-side encryption with either Amazon S3-managed keys (SSE-S3) or AWS KMS-managed keys (SSE-KMS).", - "properties": { - "ServerSideEncryptionConfiguration": { - "description": "Specifies the default server-side-encryption configuration.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ServerSideEncryptionRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "ServerSideEncryptionConfiguration" - ], - "type": "object" - }, - "CorsConfiguration": { - "additionalProperties": false, - "properties": { - "CorsRules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/CorsRule", - "maxLength": 100 - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "CorsRules" - ], - "type": "object" - }, - "CorsRule": { - "additionalProperties": false, - "description": "A set of origins and methods (cross-origin access that you want to allow). You can add up to 100 rules to the configuration.", - "properties": { - "AllowedHeaders": { - "description": "Headers that are specified in the Access-Control-Request-Headers header.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AllowedMethods": { - "description": "An HTTP method that you allow the origin to execute.", - "insertionOrder": true, - "items": { - "enum": [ - "GET", - "PUT", - "HEAD", - "POST", - "DELETE" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AllowedOrigins": { - "description": "One or more origins you want customers to be able to access the bucket from.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "ExposedHeaders": { - "description": "One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object).", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Id": { - "description": "A unique identifier for this rule.", - "maxLength": 255, - "type": "string" - }, - "MaxAge": { - "description": "The time in seconds that your browser is to cache the preflight response for the specified resource.", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AllowedMethods", - "AllowedOrigins" - ], - "type": "object" - }, - "DataExport": { - "additionalProperties": false, - "description": "Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.", - "properties": { - "Destination": { - "$ref": "#/definitions/Destination" - }, - "OutputSchemaVersion": { - "const": "V_1", - "description": "The version of the output schema to use when exporting data.", - "type": "string" - } - }, - "required": [ - "Destination", - "OutputSchemaVersion" - ], - "type": "object" - }, - "DefaultRetention": { - "additionalProperties": false, - "description": "The default retention period that you want to apply to new objects placed in the specified bucket.", - "properties": { - "Days": { - "type": "integer" - }, - "Mode": { - "enum": [ - "COMPLIANCE", - "GOVERNANCE" - ], - "type": "string" - }, - "Years": { - "type": "integer" - } - }, - "type": "object" - }, - "DeleteMarkerReplication": { - "additionalProperties": false, - "properties": { - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "type": "object" - }, - "Destination": { - "additionalProperties": false, - "description": "Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC).", - "properties": { - "BucketAccountId": { - "description": "The account ID that owns the destination S3 bucket. ", - "type": "string" - }, - "BucketArn": { - "description": "The Amazon Resource Name (ARN) of the bucket to which data is exported.", - "type": "string" - }, - "Format": { - "description": "Specifies the file format used when exporting data to Amazon S3.", - "enum": [ - "CSV", - "ORC", - "Parquet" - ], - "type": "string" - }, - "Prefix": { - "description": "The prefix to use when exporting data. The prefix is prepended to all results.", - "type": "string" - } - }, - "required": [ - "BucketArn", - "Format" - ], - "type": "object" - }, - "EncryptionConfiguration": { - "additionalProperties": false, - "description": "Specifies encryption-related information for an Amazon S3 bucket that is a destination for replicated objects.", - "properties": { - "ReplicaKmsKeyID": { - "description": "Specifies the ID (Key ARN or Alias ARN) of the customer managed customer master key (CMK) stored in AWS Key Management Service (KMS) for the destination bucket.", - "type": "string" - } - }, - "required": [ - "ReplicaKmsKeyID" - ], - "type": "object" - }, - "EventBridgeConfiguration": { - "additionalProperties": false, - "description": "Describes the Amazon EventBridge notification configuration for an Amazon S3 bucket.", - "properties": { - "EventBridgeEnabled": { - "default": "true", - "description": "Specifies whether to send notifications to Amazon EventBridge when events occur in an Amazon S3 bucket.", - "type": "boolean" - } - }, - "required": [ - "EventBridgeEnabled" - ], - "type": "object" - }, - "FilterRule": { - "additionalProperties": false, - "description": "Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.", - "properties": { - "Name": { - "maxLength": 1024, - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Name" - ], - "type": "object" - }, - "IntelligentTieringConfiguration": { - "additionalProperties": false, - "properties": { - "Id": { - "description": "The ID used to identify the S3 Intelligent-Tiering configuration.", - "type": "string" - }, - "Prefix": { - "description": "An object key name prefix that identifies the subset of objects to which the rule applies.", - "type": "string" - }, - "Status": { - "description": "Specifies the status of the configuration.", - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - }, - "TagFilters": { - "description": "A container for a key-value pair.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Tierings": { - "description": "Specifies a list of S3 Intelligent-Tiering storage class tiers in the configuration. At least one tier must be defined in the list. At most, you can specify two tiers in the list, one for each available AccessTier: ARCHIVE_ACCESS and DEEP_ARCHIVE_ACCESS.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Tiering" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Id", - "Status", - "Tierings" - ], - "type": "object" - }, - "InventoryConfiguration": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/Destination" - }, - "Enabled": { - "description": "Specifies whether the inventory is enabled or disabled.", - "type": "boolean" - }, - "Id": { - "description": "The ID used to identify the inventory configuration.", - "type": "string" - }, - "IncludedObjectVersions": { - "description": "Object versions to include in the inventory list.", - "enum": [ - "All", - "Current" - ], - "type": "string" - }, - "OptionalFields": { - "description": "Contains the optional fields that are included in the inventory results.", - "insertionOrder": true, - "items": { - "enum": [ - "Size", - "LastModifiedDate", - "StorageClass", - "ETag", - "IsMultipartUploaded", - "ReplicationStatus", - "EncryptionStatus", - "ObjectLockRetainUntilDate", - "ObjectLockMode", - "ObjectLockLegalHoldStatus", - "IntelligentTieringAccessTier", - "BucketKeyStatus", - "ChecksumAlgorithm" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Prefix": { - "description": "The prefix that is prepended to all inventory results.", - "type": "string" - }, - "ScheduleFrequency": { - "description": "Specifies the schedule for generating inventory results.", - "enum": [ - "Daily", - "Weekly" - ], - "type": "string" - } - }, - "required": [ - "Destination", - "Enabled", - "Id", - "IncludedObjectVersions", - "ScheduleFrequency" - ], - "type": "object" - }, - "LambdaConfiguration": { - "additionalProperties": false, - "description": "Describes the AWS Lambda functions to invoke and the events for which to invoke them.", - "properties": { - "Event": { - "description": "The Amazon S3 bucket event for which to invoke the AWS Lambda function.", - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter", - "description": "The filtering rules that determine which objects invoke the AWS Lambda function." - }, - "Function": { - "description": "The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3 invokes when the specified event type occurs.", - "type": "string" - } - }, - "required": [ - "Function", - "Event" - ], - "type": "object" - }, - "LifecycleConfiguration": { - "additionalProperties": false, - "properties": { - "Rules": { - "description": "A lifecycle rule for individual objects in an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Rule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "DestinationBucketName": { - "description": "The name of an Amazon S3 bucket where Amazon S3 store server access log files. You can store log files in any bucket that you own. By default, logs are stored in the bucket where the LoggingConfiguration property is defined.", - "type": "string" - }, - "LogFilePrefix": { - "type": "string" - } - }, - "type": "object" - }, - "Metrics": { - "additionalProperties": false, - "properties": { - "EventThreshold": { - "$ref": "#/definitions/ReplicationTimeValue" - }, - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "MetricsConfiguration": { - "additionalProperties": false, - "properties": { - "AccessPointArn": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Prefix": { - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Id" - ], - "type": "object" - }, - "NoncurrentVersionExpiration": { - "additionalProperties": false, - "description": "Container for the expiration rule that describes when noncurrent objects are expired. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 expire noncurrent object versions at a specific period in the object's lifetime", - "properties": { - "NewerNoncurrentVersions": { - "description": "Specified the number of newer noncurrent and current versions that must exists before performing the associated action", - "type": "integer" - }, - "NoncurrentDays": { - "description": "Specified the number of days an object is noncurrent before Amazon S3 can perform the associated action", - "type": "integer" - } - }, - "required": [ - "NoncurrentDays" - ], - "type": "object" - }, - "NoncurrentVersionTransition": { - "additionalProperties": false, - "description": "Container for the transition rule that describes when noncurrent objects transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's lifetime.", - "properties": { - "NewerNoncurrentVersions": { - "description": "Specified the number of newer noncurrent and current versions that must exists before performing the associated action", - "type": "integer" - }, - "StorageClass": { - "description": "The class of storage used to store the object.", - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "Glacier", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "STANDARD_IA" - ], - "type": "string" - }, - "TransitionInDays": { - "description": "Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action.", - "type": "integer" - } - }, - "required": [ - "StorageClass", - "TransitionInDays" - ], - "type": "object" - }, - "NotificationConfiguration": { - "additionalProperties": false, - "description": "Describes the notification configuration for an Amazon S3 bucket.", - "properties": { - "EventBridgeConfiguration": { - "$ref": "#/definitions/EventBridgeConfiguration" - }, - "LambdaConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/LambdaConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "QueueConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/QueueConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "TopicConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TopicConfiguration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "NotificationFilter": { - "additionalProperties": false, - "description": "Specifies object key name filtering rules.", - "properties": { - "S3Key": { - "$ref": "#/definitions/S3KeyFilter" - } - }, - "required": [ - "S3Key" - ], - "type": "object" - }, - "ObjectLockConfiguration": { - "additionalProperties": false, - "properties": { - "ObjectLockEnabled": { - "const": "Enabled", - "type": "string" - }, - "Rule": { - "$ref": "#/definitions/ObjectLockRule" - } - }, - "type": "object" - }, - "ObjectLockRule": { - "additionalProperties": false, - "description": "The Object Lock rule in place for the specified object.", - "properties": { - "DefaultRetention": { - "$ref": "#/definitions/DefaultRetention" - } - }, - "type": "object" - }, - "OwnershipControls": { - "additionalProperties": false, - "properties": { - "Rules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/OwnershipControlsRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "OwnershipControlsRule": { - "additionalProperties": false, - "properties": { - "ObjectOwnership": { - "description": "Specifies an object ownership rule.", - "enum": [ - "ObjectWriter", - "BucketOwnerPreferred", - "BucketOwnerEnforced" - ], - "type": "string" - } - }, - "type": "object" - }, - "PublicAccessBlockConfiguration": { - "additionalProperties": false, - "description": "Configuration that defines how Amazon S3 handles public access.", - "properties": { - "BlockPublicAcls": { - "description": "Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this bucket. Setting this element to TRUE causes the following behavior:\n- PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public.\n - PUT Object calls fail if the request includes a public ACL.\nEnabling this setting doesn't affect existing policies or ACLs.", - "type": "boolean" - }, - "BlockPublicPolicy": { - "description": "Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to TRUE causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.\nEnabling this setting doesn't affect existing bucket policies.", - "type": "boolean" - }, - "IgnorePublicAcls": { - "description": "Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this element to TRUE causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket.\nEnabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.", - "type": "boolean" - }, - "RestrictPublicBuckets": { - "description": "Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to TRUE restricts access to this bucket to only AWS services and authorized users within this account if the bucket has a public policy.\nEnabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked.", - "type": "boolean" - } - }, - "type": "object" - }, - "QueueConfiguration": { - "additionalProperties": false, - "description": "The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages.", - "properties": { - "Event": { - "description": "The Amazon S3 bucket event about which you want to publish messages to Amazon SQS.", - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter", - "description": "The filtering rules that determine which objects trigger notifications." - }, - "Queue": { - "description": "The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type.", - "type": "string" - } - }, - "required": [ - "Event", - "Queue" - ], - "type": "object" - }, - "RedirectAllRequestsTo": { - "additionalProperties": false, - "dependencies": { - "RedirectAllRequestsTo": { - "properties": { - "ErrorDocument": false, - "IndexDocument": false, - "RoutingRules": false - } - } - }, - "description": "Specifies the redirect behavior of all requests to a website endpoint of an Amazon S3 bucket.", - "properties": { - "HostName": { - "description": "Name of the host where requests are redirected.", - "type": "string" - }, - "Protocol": { - "description": "Protocol to use when redirecting requests. The default is the protocol that is used in the original request.", - "enum": [ - "http", - "https" - ], - "type": "string" - } - }, - "required": [ - "HostName" - ], - "type": "object" - }, - "RedirectRule": { - "additionalProperties": false, - "description": "Specifies how requests are redirected. In the event of an error, you can specify a different error code to return.", - "properties": { - "HostName": { - "description": "The host name to use in the redirect request.", - "type": "string" - }, - "HttpRedirectCode": { - "description": "The HTTP redirect code to use on the response. Not required if one of the siblings is present.", - "type": "string" - }, - "Protocol": { - "description": "Protocol to use when redirecting requests. The default is the protocol that is used in the original request.", - "enum": [ - "http", - "https" - ], - "type": "string" - }, - "ReplaceKeyPrefixWith": { - "description": "The object key prefix to use in the redirect request.", - "type": "string" - }, - "ReplaceKeyWith": { - "description": "The specific object key to use in the redirect request.d", - "type": "string" - } - }, - "type": "object" - }, - "ReplicaModifications": { - "additionalProperties": false, - "properties": { - "Status": { - "description": "Specifies whether Amazon S3 replicates modifications on replicas.", - "enum": [ - "Enabled", - "Disabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "ReplicationConfiguration": { - "additionalProperties": false, - "description": "A container for replication rules. You can add up to 1,000 rules. The maximum size of a replication configuration is 2 MB.", - "properties": { - "Role": { - "awsType": "IamRoleArn", - "description": "The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that Amazon S3 assumes when replicating objects.", - "type": "string" - }, - "Rules": { - "description": "A container for one or more replication rules.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ReplicationRule", - "maxLength": 1000, - "minLength": 1 - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Role", - "Rules" - ], - "type": "object" - }, - "ReplicationDestination": { - "additionalProperties": false, - "description": "Specifies which Amazon S3 bucket to store replicated objects in and their storage class.", - "properties": { - "AccessControlTranslation": { - "$ref": "#/definitions/AccessControlTranslation" - }, - "Account": { - "type": "string" - }, - "Bucket": { - "type": "string" - }, - "EncryptionConfiguration": { - "$ref": "#/definitions/EncryptionConfiguration" - }, - "Metrics": { - "$ref": "#/definitions/Metrics" - }, - "ReplicationTime": { - "$ref": "#/definitions/ReplicationTime" - }, - "StorageClass": { - "description": "The storage class to use when replicating objects, such as S3 Standard or reduced redundancy.", - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "REDUCED_REDUNDANCY", - "STANDARD", - "STANDARD_IA" - ], - "type": "string" - } - }, - "required": [ - "Bucket" - ], - "type": "object" - }, - "ReplicationRule": { - "additionalProperties": false, - "description": "Specifies which Amazon S3 objects to replicate and where to store the replicas.", - "properties": { - "DeleteMarkerReplication": { - "$ref": "#/definitions/DeleteMarkerReplication" - }, - "Destination": { - "$ref": "#/definitions/ReplicationDestination" - }, - "Filter": { - "$ref": "#/definitions/ReplicationRuleFilter" - }, - "Id": { - "description": "A unique identifier for the rule.", - "maxLength": 255, - "type": "string" - }, - "Prefix": { - "description": "An object key name prefix that identifies the object or objects to which the rule applies.", - "maxLength": 1024, - "type": "string" - }, - "Priority": { - "type": "integer" - }, - "SourceSelectionCriteria": { - "$ref": "#/definitions/SourceSelectionCriteria" - }, - "Status": { - "description": "Specifies whether the rule is enabled.", - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Destination", - "Status" - ], - "type": "object" - }, - "ReplicationRuleAndOperator": { - "additionalProperties": false, - "properties": { - "Prefix": { - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ReplicationRuleFilter": { - "additionalProperties": false, - "properties": { - "And": { - "$ref": "#/definitions/ReplicationRuleAndOperator" - }, - "Prefix": { - "type": "string" - }, - "TagFilter": { - "$ref": "#/definitions/TagFilter" - } - }, - "type": "object" - }, - "ReplicationTime": { - "additionalProperties": false, - "properties": { - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - }, - "Time": { - "$ref": "#/definitions/ReplicationTimeValue" - } - }, - "required": [ - "Status", - "Time" - ], - "type": "object" - }, - "ReplicationTimeValue": { - "additionalProperties": false, - "properties": { - "Minutes": { - "type": "integer" - } - }, - "required": [ - "Minutes" - ], - "type": "object" - }, - "RoutingRule": { - "additionalProperties": false, - "description": "Specifies the redirect behavior and when a redirect is applied.", - "properties": { - "RedirectRule": { - "$ref": "#/definitions/RedirectRule", - "description": "Container for redirect information. You can redirect requests to another host, to another page, or with another protocol. In the event of an error, you can specify a different error code to return." - }, - "RoutingRuleCondition": { - "$ref": "#/definitions/RoutingRuleCondition" - } - }, - "required": [ - "RedirectRule" - ], - "type": "object" - }, - "RoutingRuleCondition": { - "additionalProperties": false, - "anyOf": [ - { - "required": [ - "HttpErrorCodeReturnedEquals" - ] - }, - { - "required": [ - "KeyPrefixEquals" - ] - } - ], - "description": "A container for describing a condition that must be met for the specified redirect to apply.You must specify at least one of HttpErrorCodeReturnedEquals and KeyPrefixEquals", - "properties": { - "HttpErrorCodeReturnedEquals": { - "description": "The HTTP error code when the redirect is applied. ", - "type": "string" - }, - "KeyPrefixEquals": { - "description": "The object key name prefix when the redirect is applied.", - "type": "string" - } - }, - "type": "object" - }, - "Rule": { - "additionalProperties": false, - "description": "You must specify at least one of the following properties: AbortIncompleteMultipartUpload, ExpirationDate, ExpirationInDays, NoncurrentVersionExpirationInDays, NoncurrentVersionTransition, NoncurrentVersionTransitions, Transition, or Transitions.", - "properties": { - "AbortIncompleteMultipartUpload": { - "$ref": "#/definitions/AbortIncompleteMultipartUpload" - }, - "ExpirationDate": { - "$ref": "#/definitions/iso8601UTC" - }, - "ExpirationInDays": { - "type": "integer" - }, - "ExpiredObjectDeleteMarker": { - "type": "boolean" - }, - "Id": { - "maxLength": 255, - "type": "string" - }, - "NoncurrentVersionExpiration": { - "$ref": "#/definitions/NoncurrentVersionExpiration" - }, - "NoncurrentVersionExpirationInDays": { - "type": "integer" - }, - "NoncurrentVersionTransition": { - "$ref": "#/definitions/NoncurrentVersionTransition" - }, - "NoncurrentVersionTransitions": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/NoncurrentVersionTransition" - }, - "type": "array", - "uniqueItems": true - }, - "ObjectSizeGreaterThan": { - "maxLength": 20, - "pattern": "[0-9]+", - "type": "string" - }, - "ObjectSizeLessThan": { - "maxLength": 20, - "pattern": "[0-9]+", - "type": "string" - }, - "Prefix": { - "type": "string" - }, - "Status": { - "enum": [ - "Enabled", - "Disabled" - ], - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Transition": { - "$ref": "#/definitions/Transition" - }, - "Transitions": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Transition" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "S3KeyFilter": { - "additionalProperties": false, - "description": "A container for object key name prefix and suffix filtering rules.", - "properties": { - "Rules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/FilterRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "ServerSideEncryptionByDefault": { - "additionalProperties": false, - "description": "Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied.", - "properties": { - "KMSMasterKeyID": { - "description": "\"KMSMasterKeyID\" can only be used when you set the value of SSEAlgorithm as aws:kms or aws:kms:dsse.", - "type": "string" - }, - "SSEAlgorithm": { - "enum": [ - "aws:kms", - "AES256", - "aws:kms:dsse" - ], - "type": "string" - } - }, - "required": [ - "SSEAlgorithm" - ], - "type": "object" - }, - "ServerSideEncryptionRule": { - "additionalProperties": false, - "description": "Specifies the default server-side encryption configuration.", - "properties": { - "BucketKeyEnabled": { - "description": "Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the BucketKeyEnabled element to true causes Amazon S3 to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled.", - "type": "boolean" - }, - "ServerSideEncryptionByDefault": { - "$ref": "#/definitions/ServerSideEncryptionByDefault" - } - }, - "type": "object" - }, - "SourceSelectionCriteria": { - "additionalProperties": false, - "description": "A container that describes additional filters for identifying the source objects that you want to replicate.", - "properties": { - "ReplicaModifications": { - "$ref": "#/definitions/ReplicaModifications", - "description": "A filter that you can specify for selection for modifications on replicas." - }, - "SseKmsEncryptedObjects": { - "$ref": "#/definitions/SseKmsEncryptedObjects", - "description": "A container for filter information for the selection of Amazon S3 objects encrypted with AWS KMS." - } - }, - "type": "object" - }, - "SseKmsEncryptedObjects": { - "additionalProperties": false, - "description": "A container for filter information for the selection of S3 objects encrypted with AWS KMS.", - "properties": { - "Status": { - "description": "Specifies whether Amazon S3 replicates objects created with server-side encryption using a customer master key (CMK) stored in AWS Key Management Service.", - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "StorageClassAnalysis": { - "additionalProperties": false, - "description": "Specifies data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes for an Amazon S3 bucket.", - "properties": { - "DataExport": { - "$ref": "#/definitions/DataExport" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "description": "Tags to use to identify a subset of objects for an Amazon S3 bucket.", - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "Tiering": { - "additionalProperties": false, - "properties": { - "AccessTier": { - "description": "S3 Intelligent-Tiering access tier. See Storage class for automatically optimizing frequently and infrequently accessed objects for a list of access tiers in the S3 Intelligent-Tiering storage class.", - "enum": [ - "ARCHIVE_ACCESS", - "DEEP_ARCHIVE_ACCESS" - ], - "type": "string" - }, - "Days": { - "description": "The number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier. The minimum number of days specified for Archive Access tier must be at least 90 days and Deep Archive Access tier must be at least 180 days. The maximum can be up to 2 years (730 days).", - "type": "integer" - } - }, - "required": [ - "AccessTier", - "Days" - ], - "type": "object" - }, - "TopicConfiguration": { - "additionalProperties": false, - "description": "The topic to which notifications are sent and the events for which notifications are generated.", - "properties": { - "Event": { - "description": "The Amazon S3 bucket event about which to send notifications.", - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter", - "description": "The filtering rules that determine for which objects to send notifications." - }, - "Topic": { - "description": "The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 publishes a message when it detects events of the specified type.", - "type": "string" - } - }, - "required": [ - "Event", - "Topic" - ], - "type": "object" - }, - "Transition": { - "additionalProperties": false, - "description": "You must specify at least one of \"TransitionDate\" and \"TransitionInDays\"", - "properties": { - "StorageClass": { - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "Glacier", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "STANDARD_IA" - ], - "type": "string" - }, - "TransitionDate": { - "$ref": "#/definitions/iso8601UTC" - }, - "TransitionInDays": { - "type": "integer" - } - }, - "required": [ - "StorageClass" - ], - "type": "object" - }, - "VersioningConfiguration": { - "additionalProperties": false, - "description": "Describes the versioning state of an Amazon S3 bucket.", - "properties": { - "Status": { - "default": "Suspended", - "description": "The versioning state of the bucket.", - "enum": [ - "Enabled", - "Suspended" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "WebsiteConfiguration": { - "additionalProperties": false, - "description": "Specifies website configuration parameters for an Amazon S3 bucket.", - "properties": { - "ErrorDocument": { - "description": "The name of the error document for the website.", - "type": "string" - }, - "IndexDocument": { - "description": "The name of the index document for the website.", - "type": "string" - }, - "RedirectAllRequestsTo": { - "$ref": "#/definitions/RedirectAllRequestsTo" - }, - "RoutingRules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/RoutingRule" - }, - "type": "array" - } - }, - "type": "object" - }, - "iso8601UTC": { - "description": "The date value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ssZ)", - "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", - "type": "string" - } - }, - "description": "Resource Type definition for AWS::S3::Bucket", - "handlers": { - "create": { - "permissions": [ - "s3:CreateBucket", - "s3:PutBucketTagging", - "s3:PutAnalyticsConfiguration", - "s3:PutEncryptionConfiguration", - "s3:PutBucketCORS", - "s3:PutInventoryConfiguration", - "s3:PutLifecycleConfiguration", - "s3:PutMetricsConfiguration", - "s3:PutBucketNotification", - "s3:PutBucketReplication", - "s3:PutBucketWebsite", - "s3:PutAccelerateConfiguration", - "s3:PutBucketPublicAccessBlock", - "s3:PutReplicationConfiguration", - "s3:PutObjectAcl", - "s3:PutBucketObjectLockConfiguration", - "s3:GetBucketAcl", - "s3:ListBucket", - "iam:PassRole", - "s3:DeleteObject", - "s3:PutBucketLogging", - "s3:PutBucketVersioning", - "s3:PutObjectLockConfiguration", - "s3:PutBucketOwnershipControls", - "s3:PutIntelligentTieringConfiguration" - ] - }, - "delete": { - "permissions": [ - "s3:DeleteBucket", - "s3:ListBucket" - ] - }, - "list": { - "permissions": [ - "s3:ListAllMyBuckets" - ] - }, - "read": { - "permissions": [ - "s3:GetAccelerateConfiguration", - "s3:GetLifecycleConfiguration", - "s3:GetBucketPublicAccessBlock", - "s3:GetAnalyticsConfiguration", - "s3:GetBucketCORS", - "s3:GetEncryptionConfiguration", - "s3:GetInventoryConfiguration", - "s3:GetBucketLogging", - "s3:GetMetricsConfiguration", - "s3:GetBucketNotification", - "s3:GetBucketVersioning", - "s3:GetReplicationConfiguration", - "S3:GetBucketWebsite", - "s3:GetBucketPublicAccessBlock", - "s3:GetBucketObjectLockConfiguration", - "s3:GetBucketTagging", - "s3:GetBucketOwnershipControls", - "s3:GetIntelligentTieringConfiguration", - "s3:ListBucket" - ] - }, - "update": { - "permissions": [ - "s3:PutBucketAcl", - "s3:PutBucketTagging", - "s3:PutAnalyticsConfiguration", - "s3:PutEncryptionConfiguration", - "s3:PutBucketCORS", - "s3:PutInventoryConfiguration", - "s3:PutLifecycleConfiguration", - "s3:PutMetricsConfiguration", - "s3:PutBucketNotification", - "s3:PutBucketReplication", - "s3:PutBucketWebsite", - "s3:PutAccelerateConfiguration", - "s3:PutBucketPublicAccessBlock", - "s3:PutReplicationConfiguration", - "s3:PutBucketOwnershipControls", - "s3:PutIntelligentTieringConfiguration", - "s3:DeleteBucketWebsite", - "s3:PutBucketLogging", - "s3:PutBucketVersioning", - "s3:PutObjectLockConfiguration", - "s3:PutBucketObjectLockConfiguration", - "s3:DeleteBucketAnalyticsConfiguration", - "s3:DeleteBucketCors", - "s3:DeleteBucketMetricsConfiguration", - "s3:DeleteBucketEncryption", - "s3:DeleteBucketLifecycle", - "s3:DeleteBucketReplication", - "iam:PassRole", - "s3:ListBucket" - ] - } - }, - "primaryIdentifier": [ - "/properties/BucketName" - ], - "properties": { - "AccelerateConfiguration": { - "$ref": "#/definitions/AccelerateConfiguration", - "description": "Configuration for the transfer acceleration state." - }, - "AccessControl": { - "description": "A canned access control list (ACL) that grants predefined permissions to the bucket.", - "enum": [ - "AuthenticatedRead", - "AwsExecRead", - "BucketOwnerFullControl", - "BucketOwnerRead", - "LogDeliveryWrite", - "Private", - "PublicRead", - "PublicReadWrite" - ], - "type": "string" - }, - "AnalyticsConfigurations": { - "description": "The configuration and any analyses for the analytics filter of an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/AnalyticsConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "Arn": { - "$ref": "#/definitions/Arn", - "description": "The Amazon Resource Name (ARN) of the specified bucket.", - "examples": [ - "arn:aws:s3:::mybucket" - ] - }, - "BucketEncryption": { - "$ref": "#/definitions/BucketEncryption" - }, - "BucketName": { - "description": "A name for the bucket. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][a-z0-9.-]*[a-z0-9]$", - "type": "string" - }, - "CorsConfiguration": { - "$ref": "#/definitions/CorsConfiguration", - "description": "Rules that define cross-origin resource sharing of objects in this bucket." - }, - "DomainName": { - "description": "The IPv4 DNS name of the specified bucket.", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.amazonaws.com" - ], - "type": "string" - }, - "DualStackDomainName": { - "description": "The IPv6 DNS name of the specified bucket. For more information about dual-stack endpoints, see [Using Amazon S3 Dual-Stack Endpoints](https://docs.aws.amazon.com/AmazonS3/latest/dev/dual-stack-endpoints.html).", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com" - ], - "type": "string" - }, - "IntelligentTieringConfigurations": { - "description": "Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/IntelligentTieringConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "InventoryConfigurations": { - "description": "The inventory configuration for an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/InventoryConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "LifecycleConfiguration": { - "$ref": "#/definitions/LifecycleConfiguration", - "description": "Rules that define how Amazon S3 manages objects during their lifetime." - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration", - "description": "Settings that define where logs are stored." - }, - "MetricsConfigurations": { - "description": "Settings that define a metrics configuration for the CloudWatch request metrics from the bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/MetricsConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "NotificationConfiguration": { - "$ref": "#/definitions/NotificationConfiguration", - "description": "Configuration that defines how Amazon S3 handles bucket notifications." - }, - "ObjectLockConfiguration": { - "$ref": "#/definitions/ObjectLockConfiguration", - "description": "Places an Object Lock configuration on the specified bucket." - }, - "ObjectLockEnabled": { - "description": "Indicates whether this bucket has an Object Lock configuration enabled.", - "type": "boolean" - }, - "OwnershipControls": { - "$ref": "#/definitions/OwnershipControls", - "description": "Specifies the container element for object ownership rules." - }, - "PublicAccessBlockConfiguration": { - "$ref": "#/definitions/PublicAccessBlockConfiguration" - }, - "RegionalDomainName": { - "description": "Returns the regional domain name of the specified bucket.", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.us-east-2.amazonaws.com" - ], - "type": "string" - }, - "ReplicationConfiguration": { - "$ref": "#/definitions/ReplicationConfiguration", - "description": "Configuration for replicating objects in an S3 bucket." - }, - "Tags": { - "description": "An arbitrary set of tags (key-value pairs) for this S3 bucket.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VersioningConfiguration": { - "$ref": "#/definitions/VersioningConfiguration" - }, - "WebsiteConfiguration": { - "$ref": "#/definitions/WebsiteConfiguration" - }, - "WebsiteURL": { - "description": "The Amazon S3 website endpoint for the specified bucket.", - "examples": [ - "Example (IPv4): http://mystack-mybucket-kdwwxmddtr2g.s3-website-us-east-2.amazonaws.com/", - "Example (IPv6): http://mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com/" - ], - "format": "uri", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/DomainName", - "/properties/DualStackDomainName", - "/properties/RegionalDomainName", - "/properties/WebsiteURL" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::S3::Bucket", - "writeOnlyProperties": [ - "/properties/AccessControl", - "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionExpirationInDays", - "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionTransition", - "/properties/LifecycleConfiguration/Rules/*/Transition", - "/properties/ReplicationConfiguration/Rules/*/Prefix", - "/properties/LifecycleConfiguration/Rules/*/ExpiredObjectDeleteMarker" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-servicecatalogappregistry-application.json new file mode 100644 index 0000000000..b04a7d7289 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-servicecatalogappregistry-application.json @@ -0,0 +1,100 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Name" + ] + ], + "additionalProperties": false, + "definitions": { + "Tags": { + "additionalProperties": false, + "maxProperties": 50, + "patternProperties": { + "^[a-zA-Z+-=._:/]+$": { + "maxLength": 256, + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application", + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-application.html", + "handlers": { + "create": { + "permissions": [ + "servicecatalog:CreateApplication", + "servicecatalog:TagResource", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "servicecatalog:DeleteApplication" + ] + }, + "list": { + "permissions": [ + "servicecatalog:ListApplications" + ] + }, + "read": { + "permissions": [ + "servicecatalog:GetApplication" + ] + }, + "update": { + "permissions": [ + "servicecatalog:GetApplication", + "servicecatalog:ListTagsForResource", + "servicecatalog:TagResource", + "servicecatalog:UntagResource", + "servicecatalog:UpdateApplication", + "iam:CreateServiceLinkedRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", + "type": "string" + }, + "Description": { + "description": "The description of the application. ", + "maxLength": 1024, + "type": "string" + }, + "Id": { + "pattern": "[a-z0-9]{26}", + "type": "string" + }, + "Name": { + "description": "The name of the application. ", + "maxLength": 256, + "minLength": 1, + "pattern": "\\w+", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ServiceCatalogAppRegistry::Application" +} 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 2483166c1e..eaa75c3f6c 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py @@ -7,6 +7,7 @@ "AWS::Pinpoint::App", "AWS::Connect::UserHierarchyGroup", "AWS::ApiGatewayV2::ApiMapping", + "AWS::CE::AnomalySubscription", "AWS::Shield::DRTAccess", "AWS::SSO::Assignment", "AWS::Glue::Partition", @@ -263,6 +264,7 @@ "AWS::EC2::CarrierGateway", "AWS::GuardDuty::Member", "AWS::CloudFormation::CustomResource", + "AWS::FIS::TargetAccountConfiguration", "AWS::RefactorSpaces::Route", "AWS::NimbleStudio::LaunchProfile", "AWS::KinesisAnalytics::ApplicationOutput", @@ -442,6 +444,7 @@ "AWS::IoT::SoftwarePackageVersion", "AWS::EC2::NetworkInsightsAnalysis", "AWS::EC2::ClientVpnRoute", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::AppSync::ApiKey", "AWS::CloudFormation::TypeActivation", @@ -535,6 +538,7 @@ "AWS::ServiceCatalog::AcceptedPortfolioShare", "AWS::Route53Resolver::FirewallRuleGroupAssociation", "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", "AWS::EC2::Subnet", "AWS::CloudTrail::ResourcePolicy", "AWS::S3ObjectLambda::AccessPoint", @@ -763,6 +767,7 @@ "AWS::MediaConnect::FlowSource", "AWS::AppConfig::Extension", "AWS::Lex::ResourcePolicy", + "AWS::OSIS::Pipeline", "AWS::ElasticLoadBalancingV2::ListenerRule", "AWS::ElasticLoadBalancingV2::TrustStore", "AWS::Glue::Registry", @@ -907,6 +912,7 @@ "AWS::SageMaker::MonitoringSchedule", "AWS::IAM::OIDCProvider", "AWS::LakeFormation::Tag", + "AWS::CE::AnomalyMonitor", "AWS::ServiceCatalogAppRegistry::ResourceAssociation", "AWS::EC2::VPNGateway", "AWS::CloudFormation::Stack", @@ -1002,6 +1008,7 @@ "aws-apigatewayv2-integration.json", "aws-connect-userhierarchygroup.json", "aws-apigatewayv2-apimapping.json", + "aws-ce-anomalysubscription.json", "aws-shield-drtaccess.json", "aws-sso-assignment.json", "aws-glue-partition.json", @@ -1015,6 +1022,7 @@ "aws-servicecatalog-portfolioprincipalassociation.json", "aws-ram-resourceshare.json", "aws-memorydb-cluster.json", + "aws-dms-replicationconfig.json", "aws-dynamodb-table.json", "aws-amazonmq-configurationassociation.json", "aws-redshiftserverless-namespace.json", @@ -1142,7 +1150,6 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", - "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -1164,6 +1171,7 @@ "aws-sagemaker-modelpackage.json", "aws-customerprofiles-integration.json", "aws-workspaces-connectionalias.json", + "aws-eventschemas-discoverer.json", "aws-networkmanager-connectpeer.json", "aws-elasticache-usergroup.json", "aws-iot-thinggroup.json", @@ -1196,6 +1204,7 @@ "aws-glue-table.json", "aws-sagemaker-inferencecomponent.json", "aws-logs-metricfilter.json", + "aws-lambda-function.json", "aws-sns-topic.json", "aws-backup-backupselection.json", "aws-datasync-locationfsxlustre.json", @@ -1213,6 +1222,7 @@ "aws-mediaconnect-bridgeoutput.json", "aws-ssm-document.json", "aws-iam-role.json", + "aws-workspacesthinclient-environment.json", "aws-dms-endpoint.json", "aws-iotsitewise-project.json", "aws-medialive-multiplexprogram.json", @@ -1236,7 +1246,6 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", - "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-wafregional-xssmatchset.json", "aws-vpclattice-rule.json", @@ -1247,6 +1256,7 @@ "aws-ec2-carriergateway.json", "aws-guardduty-member.json", "aws-cloudformation-customresource.json", + "aws-fis-targetaccountconfiguration.json", "aws-refactorspaces-route.json", "aws-nimblestudio-launchprofile.json", "aws-kinesisanalytics-applicationoutput.json", @@ -1257,7 +1267,6 @@ "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", - "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-location-trackerconsumer.json", "aws-vpclattice-servicenetwork.json", @@ -1310,6 +1319,7 @@ "aws-msk-batchscramsecret.json", "aws-connect-hoursofoperation.json", "aws-dms-certificate.json", + "aws-s3-bucket.json", "aws-guardduty-ipset.json", "aws-servicediscovery-httpnamespace.json", "aws-emr-securityconfiguration.json", @@ -1509,6 +1519,7 @@ "aws-servicecatalog-acceptedportfolioshare.json", "aws-route53resolver-firewallrulegroupassociation.json", "aws-route53resolver-resolverqueryloggingconfig.json", + "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-subnet.json", "aws-cloudtrail-resourcepolicy.json", "aws-s3objectlambda-accesspoint.json", @@ -1516,6 +1527,7 @@ "aws-waf-rule.json", "aws-elasticbeanstalk-configurationtemplate.json", "aws-sqs-queuepolicy.json", + "aws-appsync-domainnameapiassociation.json", "aws-appsync-apicache.json", "aws-apigateway-account.json", "aws-wafv2-webacl.json", @@ -1563,7 +1575,6 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", - "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-customerprofiles-eventstream.json", @@ -1607,6 +1618,7 @@ "aws-ssmincidents-responseplan.json", "aws-lambda-layerversionpermission.json", "aws-secretsmanager-secret.json", + "aws-route53resolver-resolverconfig.json", "aws-elasticache-user.json", "aws-neptune-dbinstance.json", "aws-sagemaker-image.json", @@ -1684,7 +1696,6 @@ "aws-lightsail-loadbalancertlscertificate.json", "aws-ec2-clientvpntargetnetworkassociation.json", "aws-mediapackagev2-originendpoint.json", - "aws-appsync-graphqlapi.json", "aws-gamelift-matchmakingruleset.json", "aws-ec2-egressonlyinternetgateway.json", "aws-config-conformancepack.json", @@ -1729,6 +1740,7 @@ "aws-mediaconnect-flowsource.json", "aws-appconfig-extension.json", "aws-lex-resourcepolicy.json", + "aws-osis-pipeline.json", "aws-elasticloadbalancingv2-listenerrule.json", "aws-elasticloadbalancingv2-truststore.json", "aws-glue-registry.json", @@ -1867,6 +1879,7 @@ "aws-sagemaker-monitoringschedule.json", "aws-iam-oidcprovider.json", "aws-lakeformation-tag.json", + "aws-ce-anomalymonitor.json", "aws-servicecatalogappregistry-resourceassociation.json", "aws-ec2-vpngateway.json", "aws-cloudformation-stack.json", @@ -1947,7 +1960,6 @@ "aws-elasticloadbalancingv2-listener.json", "aws-redshift-eventsubscription.json", "aws-iotfleethub-application.json", - "aws-connect-user.json", "aws-ssmcontacts-contactchannel.json", "aws-memorydb-acl.json", "aws-cloudformation-waitconditionhandle.json", diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-appsync-domainnameapiassociation.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-appsync-domainnameapiassociation.json deleted file mode 100644 index 5898c331d9..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-appsync-domainnameapiassociation.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DomainName" - ], - "description": "Resource Type definition for AWS::AppSync::DomainNameApiAssociation", - "handlers": { - "create": { - "permissions": [ - "appsync:AssociateApi", - "appsync:GetApiAssociation" - ] - }, - "delete": { - "permissions": [ - "appsync:DisassociateApi", - "appsync:GetApiAssociation" - ] - }, - "read": { - "permissions": [ - "appsync:GetApiAssociation" - ] - }, - "update": { - "permissions": [ - "appsync:AssociateApi", - "appsync:GetApiAssociation" - ] - } - }, - "primaryIdentifier": [ - "/properties/ApiAssociationIdentifier" - ], - "properties": { - "ApiAssociationIdentifier": { - "type": "string" - }, - "ApiId": { - "type": "string" - }, - "DomainName": { - "maxLength": 253, - "minLength": 1, - "pattern": "^(\\*[a-z\\d-]*\\.)?([a-z\\d-]+\\.)+[a-z\\d-]+$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/ApiAssociationIdentifier" - ], - "required": [ - "DomainName", - "ApiId" - ], - "taggable": false, - "typeName": "AWS::AppSync::DomainNameApiAssociation" -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-appsync-graphqlapi.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-appsync-graphqlapi.json new file mode 100644 index 0000000000..077c3fd5af --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-appsync-graphqlapi.json @@ -0,0 +1,222 @@ +{ + "additionalProperties": false, + "definitions": { + "AdditionalAuthenticationProvider": { + "additionalProperties": false, + "properties": { + "AuthenticationType": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "UserPoolConfig": { + "$ref": "#/definitions/CognitoUserPoolConfig" + } + }, + "required": [ + "AuthenticationType" + ], + "type": "object" + }, + "CognitoUserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "LambdaAuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsRoleArn": { + "type": "string" + }, + "ExcludeVerboseContent": { + "type": "boolean" + }, + "FieldLogLevel": { + "type": "string" + } + }, + "type": "object" + }, + "OpenIDConnectConfig": { + "additionalProperties": false, + "properties": { + "AuthTTL": { + "type": "number" + }, + "ClientId": { + "type": "string" + }, + "IatTTL": { + "type": "number" + }, + "Issuer": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "UserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "DefaultAction": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AppSync::GraphQLApi", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalAuthenticationProviders": { + "items": { + "$ref": "#/definitions/AdditionalAuthenticationProvider" + }, + "type": "array", + "uniqueItems": false + }, + "ApiId": { + "type": "string" + }, + "ApiType": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "AuthenticationType": { + "enum": [ + "API_KEY", + "AWS_IAM", + "AMAZON_COGNITO_USER_POOLS", + "OPENID_CONNECT", + "AWS_LAMBDA" + ], + "type": "string" + }, + "GraphQLDns": { + "type": "string" + }, + "GraphQLEndpointArn": { + "type": "string" + }, + "GraphQLUrl": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "LogConfig": { + "$ref": "#/definitions/LogConfig" + }, + "MergedApiExecutionRoleArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "OwnerContact": { + "type": "string" + }, + "RealtimeDns": { + "type": "string" + }, + "RealtimeUrl": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UserPoolConfig": { + "$ref": "#/definitions/UserPoolConfig" + }, + "Visibility": { + "type": "string" + }, + "XrayEnabled": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/ApiId", + "/properties/GraphQLEndpointArn", + "/properties/Id", + "/properties/GraphQLDns", + "/properties/GraphQLUrl", + "/properties/RealtimeDns", + "/properties/RealtimeUrl", + "/properties/Arn" + ], + "required": [ + "Name", + "AuthenticationType" + ], + "typeName": "AWS::AppSync::GraphQLApi" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-codedeploy-deploymentgroup.json new file mode 100644 index 0000000000..208990a115 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-codedeploy-deploymentgroup.json @@ -0,0 +1,523 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentGroupName", + "/properties/ApplicationName" + ], + "definitions": { + "Alarm": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AlarmConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/Alarm" + }, + "type": "array", + "uniqueItems": true + }, + "Enabled": { + "type": "boolean" + }, + "IgnorePollAlarmFailure": { + "type": "boolean" + } + }, + "type": "object" + }, + "AutoRollbackConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Events": { + "items": { + "enum": [ + "DEPLOYMENT_FAILURE", + "DEPLOYMENT_STOP_ON_ALARM", + "DEPLOYMENT_STOP_ON_REQUEST" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "BlueGreenDeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "DeploymentReadyOption": { + "$ref": "#/definitions/DeploymentReadyOption" + }, + "GreenFleetProvisioningOption": { + "$ref": "#/definitions/GreenFleetProvisioningOption" + }, + "TerminateBlueInstancesOnDeploymentSuccess": { + "$ref": "#/definitions/BlueInstanceTerminationOption" + } + }, + "type": "object" + }, + "BlueInstanceTerminationOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "TerminationWaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "Deployment": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "IgnoreApplicationStopFailures": { + "type": "boolean" + }, + "Revision": { + "$ref": "#/definitions/RevisionLocation" + } + }, + "required": [ + "Revision" + ], + "type": "object" + }, + "DeploymentReadyOption": { + "additionalProperties": false, + "properties": { + "ActionOnTimeout": { + "type": "string" + }, + "WaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentStyle": { + "additionalProperties": false, + "properties": { + "DeploymentOption": { + "enum": [ + "WITH_TRAFFIC_CONTROL", + "WITHOUT_TRAFFIC_CONTROL" + ], + "type": "string" + }, + "DeploymentType": { + "enum": [ + "IN_PLACE", + "BLUE_GREEN" + ], + "type": "string" + } + }, + "type": "object" + }, + "EC2TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "EC2TagSet": { + "additionalProperties": false, + "properties": { + "Ec2TagSetList": { + "items": { + "$ref": "#/definitions/EC2TagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EC2TagSetListObject": { + "additionalProperties": false, + "properties": { + "Ec2TagGroup": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ECSService": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + } + }, + "required": [ + "ServiceName", + "ClusterName" + ], + "type": "object" + }, + "ELBInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "GitHubLocation": { + "additionalProperties": false, + "properties": { + "CommitId": { + "type": "string" + }, + "Repository": { + "type": "string" + } + }, + "required": [ + "Repository", + "CommitId" + ], + "type": "object" + }, + "GreenFleetProvisioningOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "type": "object" + }, + "LoadBalancerInfo": { + "additionalProperties": false, + "properties": { + "ElbInfoList": { + "items": { + "$ref": "#/definitions/ELBInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupPairInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupPairInfo" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSet": { + "additionalProperties": false, + "properties": { + "OnPremisesTagSetList": { + "items": { + "$ref": "#/definitions/OnPremisesTagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSetListObject": { + "additionalProperties": false, + "properties": { + "OnPremisesTagGroup": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "RevisionLocation": { + "additionalProperties": false, + "properties": { + "GitHubLocation": { + "$ref": "#/definitions/GitHubLocation" + }, + "RevisionType": { + "type": "string" + }, + "S3Location": { + "$ref": "#/definitions/S3Location" + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "BundleType": { + "type": "string" + }, + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupPairInfo": { + "additionalProperties": false, + "properties": { + "ProdTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + }, + "TargetGroups": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TestTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + } + }, + "type": "object" + }, + "TrafficRoute": { + "additionalProperties": false, + "properties": { + "ListenerArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerEvents": { + "items": { + "enum": [ + "DeploymentStart", + "DeploymentSuccess", + "DeploymentFailure", + "DeploymentStop", + "DeploymentRollback", + "DeploymentReady", + "InstanceStart", + "InstanceSuccess", + "InstanceFailure", + "InstanceReady" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "TriggerName": { + "type": "string" + }, + "TriggerTargetArn": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AlarmConfiguration": { + "$ref": "#/definitions/AlarmConfiguration" + }, + "ApplicationName": { + "type": "string" + }, + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AutoRollbackConfiguration" + }, + "AutoScalingGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BlueGreenDeploymentConfiguration": { + "$ref": "#/definitions/BlueGreenDeploymentConfiguration" + }, + "Deployment": { + "$ref": "#/definitions/Deployment" + }, + "DeploymentConfigName": { + "type": "string" + }, + "DeploymentGroupName": { + "type": "string" + }, + "DeploymentStyle": { + "$ref": "#/definitions/DeploymentStyle" + }, + "ECSServices": { + "items": { + "$ref": "#/definitions/ECSService" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagFilters": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagSet": { + "$ref": "#/definitions/EC2TagSet" + }, + "Id": { + "type": "string" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/LoadBalancerInfo" + }, + "OnPremisesInstanceTagFilters": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "OnPremisesTagSet": { + "$ref": "#/definitions/OnPremisesTagSet" + }, + "OutdatedInstancesStrategy": { + "type": "string" + }, + "ServiceRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TerminationHookEnabled": { + "type": "boolean" + }, + "TriggerConfigurations": { + "items": { + "$ref": "#/definitions/TriggerConfig" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "ServiceRoleArn" + ], + "typeName": "AWS::CodeDeploy::DeploymentGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-connect-user.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-connect-user.json new file mode 100644 index 0000000000..b949608f4f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-connect-user.json @@ -0,0 +1,241 @@ +{ + "additionalProperties": false, + "definitions": { + "AfterContactWorkTimeLimit": { + "description": "The After Call Work (ACW) timeout setting, in seconds.", + "minimum": 0, + "type": "integer" + }, + "AutoAccept": { + "description": "The Auto accept setting.", + "type": "boolean" + }, + "DeskPhoneNumber": { + "description": "The phone number for the user's desk phone.", + "type": "string" + }, + "Email": { + "description": "The email address. If you are using SAML for identity management and include this parameter, an error is returned.", + "type": "string" + }, + "FirstName": { + "description": "The first name. This is required if you are using Amazon Connect or SAML for identity management.", + "type": "string" + }, + "LastName": { + "description": "The last name. This is required if you are using Amazon Connect or SAML for identity management.", + "type": "string" + }, + "Mobile": { + "description": "The mobile phone number.", + "pattern": "^\\+[1-9]\\d{1,14}$", + "type": "string" + }, + "PhoneType": { + "description": "The phone type.", + "enum": [ + "SOFT_PHONE", + "DESK_PHONE" + ], + "type": "string" + }, + "SecondaryEmail": { + "description": "The secondary email address. If you provide a secondary email, the user receives email notifications -- other than password reset notifications -- to this email address instead of to their primary email address.", + "pattern": "(?=^.{0,265}$)[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,63}", + "type": "string" + }, + "SecurityProfileArn": { + "description": "The identifier of the security profile for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/security-profile/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is maximum of 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserIdentityInfo": { + "additionalProperties": false, + "description": "Contains information about the identity of a user.", + "properties": { + "Email": { + "$ref": "#/definitions/Email" + }, + "FirstName": { + "$ref": "#/definitions/FirstName" + }, + "LastName": { + "$ref": "#/definitions/LastName" + }, + "Mobile": { + "$ref": "#/definitions/Mobile" + }, + "SecondaryEmail": { + "$ref": "#/definitions/SecondaryEmail" + } + }, + "type": "object" + }, + "UserPhoneConfig": { + "additionalProperties": false, + "description": "Contains information about the phone configuration settings for a user.", + "properties": { + "AfterContactWorkTimeLimit": { + "$ref": "#/definitions/AfterContactWorkTimeLimit" + }, + "AutoAccept": { + "$ref": "#/definitions/AutoAccept" + }, + "DeskPhoneNumber": { + "$ref": "#/definitions/DeskPhoneNumber" + }, + "PhoneType": { + "$ref": "#/definitions/PhoneType" + } + }, + "required": [ + "PhoneType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Connect::User", + "handlers": { + "create": { + "permissions": [ + "connect:CreateUser", + "connect:TagResource", + "connect:AssociateUserProficiencies" + ] + }, + "delete": { + "permissions": [ + "connect:DeleteUser", + "connect:UntagResource" + ] + }, + "read": { + "permissions": [ + "connect:DescribeUser", + "connect:ListUserProficiencies" + ] + }, + "update": { + "permissions": [ + "connect:UpdateUserIdentityInfo", + "connect:UpdateUserPhoneConfig", + "connect:UpdateUserRoutingProfile", + "connect:UpdateUserSecurityProfiles", + "connect:UpdateUserHierarchy", + "connect:TagResource", + "connect:UntagResource", + "connect:AssociateUserProficiencies", + "connect:DisassociateUserProficiencies", + "connect:UpdateUserProficiencies" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserArn" + ], + "properties": { + "DirectoryUserId": { + "description": "The identifier of the user account in the directory used for identity management.", + "type": "string" + }, + "HierarchyGroupArn": { + "description": "The identifier of the hierarchy group for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group/[-a-zA-Z0-9]*$", + "type": "string" + }, + "IdentityInfo": { + "$ref": "#/definitions/UserIdentityInfo", + "description": "The information about the identity of the user." + }, + "InstanceArn": { + "description": "The identifier of the Amazon Connect instance.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Password": { + "description": "The password for the user account. A password is required if you are using Amazon Connect for identity management. Otherwise, it is an error to include a password.", + "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d\\S]{8,64}$", + "type": "string" + }, + "PhoneConfig": { + "$ref": "#/definitions/UserPhoneConfig", + "description": "The phone settings for the user." + }, + "RoutingProfileArn": { + "description": "The identifier of the routing profile for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/routing-profile/[-a-zA-Z0-9]*$", + "type": "string" + }, + "SecurityProfileArns": { + "description": "One or more security profile arns for the user", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SecurityProfileArn" + }, + "maxItems": 10, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "description": "One or more tags.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserArn": { + "description": "The Amazon Resource Name (ARN) for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Username": { + "description": "The user name for the account.", + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\_\\-\\.\\@]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/UserArn" + ], + "required": [ + "InstanceArn", + "PhoneConfig", + "RoutingProfileArn", + "SecurityProfileArns", + "Username" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "typeName": "AWS::Connect::User", + "writeOnlyProperties": [ + "/properties/Password" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-dms-replicationconfig.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-dms-replicationconfig.json deleted file mode 100644 index 15358362ce..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-dms-replicationconfig.json +++ /dev/null @@ -1,194 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicationConfigIdentifier" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ResourceIdentifier" - ], - "definitions": { - "ComputeConfig": { - "additionalProperties": false, - "description": "Configuration parameters for provisioning a AWS DMS Serverless replication", - "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, - "description": "

The key or keys of the key-value pairs for the resource tag or tags assigned to the\n resource.

", - "properties": { - "Key": { - "description": "

Tag key.

", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "

Tag value.

", - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "A replication configuration that you later provide to configure and start a AWS DMS Serverless replication", - "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:RemoveTagsToResource", - "dms:ListTagsForResource", - "iam:CreateServiceLinkedRole", - "iam:AttachRolePolicy", - "iam:PutRolePolicy", - "iam:UpdateRoleDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicationConfigArn" - ], - "properties": { - "ComputeConfig": { - "$ref": "#/definitions/ComputeConfig" - }, - "ReplicationConfigArn": { - "description": "The Amazon Resource Name (ARN) of the Replication Config", - "type": "string" - }, - "ReplicationConfigIdentifier": { - "description": "A unique identifier of replication configuration", - "type": "string" - }, - "ReplicationSettings": { - "description": "JSON settings for Servereless replications that are provisioned using this replication configuration", - "type": "object" - }, - "ReplicationType": { - "description": "The type of AWS DMS Serverless replication to provision using this replication configuration", - "enum": [ - "full-load", - "full-load-and-cdc", - "cdc" - ], - "type": "string" - }, - "ResourceIdentifier": { - "description": "A unique value or name that you get set for a given resource that can be used to construct an Amazon Resource Name (ARN) for that resource", - "type": "string" - }, - "SourceEndpointArn": { - "description": "The Amazon Resource Name (ARN) of the source endpoint for this AWS DMS Serverless replication configuration", - "type": "string" - }, - "SupplementalSettings": { - "description": "JSON settings for specifying supplemental data", - "type": "object" - }, - "TableMappings": { - "description": "JSON table mappings for AWS DMS Serverless replications that are provisioned using this replication configuration", - "type": "object" - }, - "Tags": { - "description": "

Contains a map of the key-value pairs for the resource tag or tags assigned to the dataset.

", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 1, - "type": "array" - }, - "TargetEndpointArn": { - "description": "The Amazon Resource Name (ARN) of the target endpoint for this AWS DMS Serverless replication configuration", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/ReplicationConfigArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-dms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::DMS::ReplicationConfig" -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-emr-cluster.json new file mode 100644 index 0000000000..7ce37fccb6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-emr-cluster.json @@ -0,0 +1,858 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Steps", + "/properties/EbsRootVolumeSize", + "/properties/SecurityConfiguration", + "/properties/ScaleDownBehavior", + "/properties/Configurations", + "/properties/ReleaseLabel", + "/properties/BootstrapActions", + "/properties/EbsRootVolumeIops", + "/properties/KerberosAttributes", + "/properties/ServiceRole", + "/properties/LogEncryptionKmsKeyId", + "/properties/Name", + "/properties/EbsRootVolumeThroughput", + "/properties/JobFlowRole", + "/properties/AdditionalInfo", + "/properties/LogUri", + "/properties/CustomAmiId", + "/properties/PlacementGroupConfigs", + "/properties/OSReleaseLabel", + "/properties/AutoScalingRole", + "/properties/Applications" + ], + "definitions": { + "Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ScalingRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/ScriptBootstrapActionConfig" + } + }, + "required": [ + "ScriptBootstrapAction", + "Name" + ], + "type": "object" + }, + "CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "EvaluationPeriods": { + "type": "integer" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "integer" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "ComparisonOperator", + "Period", + "Threshold" + ], + "type": "object" + }, + "ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "integer" + }, + "MaximumCoreCapacityUnits": { + "type": "integer" + }, + "MaximumOnDemandCapacityUnits": { + "type": "integer" + }, + "MinimumCapacityUnits": { + "type": "integer" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "UnitType", + "MaximumCapacityUnits", + "MinimumCapacityUnits" + ], + "type": "object" + }, + "Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "integer" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/EbsBlockDeviceConfig" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/KeyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/InstanceTypeConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchSpecifications": { + "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "integer" + }, + "TargetSpotCapacity": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/OnDemandProvisioningSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/SpotProvisioningSpecification" + } + }, + "type": "object" + }, + "InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceType": { + "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", + "type": "string" + }, + "WeightedCapacity": { + "type": "integer" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/ComputeLimits" + } + }, + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "PlacementGroupConfig": { + "additionalProperties": false, + "properties": { + "InstanceRole": { + "type": "string" + }, + "PlacementStrategy": { + "type": "string" + } + }, + "required": [ + "InstanceRole" + ], + "type": "object" + }, + "PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/ScalingTrigger" + } + }, + "required": [ + "Action", + "Trigger", + "Name" + ], + "type": "object" + }, + "ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BlockDurationMinutes": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "integer" + } + }, + "required": [ + "TimeoutDurationMinutes", + "TimeoutAction" + ], + "type": "object" + }, + "StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "integer" + }, + "SizeInGB": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EMR::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/Application" + }, + "type": "array", + "uniqueItems": true + }, + "AutoScalingRole": { + "type": "string" + }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AutoTerminationPolicy" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/BootstrapActionConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeIops": { + "type": "integer" + }, + "EbsRootVolumeSize": { + "type": "integer" + }, + "EbsRootVolumeThroughput": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Instances": { + "$ref": "#/definitions/JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/KerberosAttributes" + }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, + "LogUri": { + "type": "string" + }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/ManagedScalingPolicy" + }, + "MasterPublicDNS": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OSReleaseLabel": { + "type": "string" + }, + "PlacementGroupConfigs": { + "items": { + "$ref": "#/definitions/PlacementGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "StepConcurrencyLevel": { + "type": "integer" + }, + "Steps": { + "items": { + "$ref": "#/definitions/StepConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/MasterPublicDNS" + ], + "required": [ + "Instances", + "ServiceRole", + "JobFlowRole", + "Name" + ], + "typeName": "AWS::EMR::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-eventschemas-discoverer.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-eventschemas-discoverer.json deleted file mode 100644 index 791d433995..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-eventschemas-discoverer.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SourceArn" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EventSchemas::Discoverer", - "primaryIdentifier": [ - "/properties/DiscovererId" - ], - "properties": { - "CrossAccount": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DiscovererArn": { - "type": "string" - }, - "DiscovererId": { - "type": "string" - }, - "SourceArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/DiscovererId", - "/properties/DiscovererArn" - ], - "required": [ - "SourceArn" - ], - "typeName": "AWS::EventSchemas::Discoverer" -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-image.json new file mode 100644 index 0000000000..223d64e03e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-image.json @@ -0,0 +1,263 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ImageRecipeArn", + "/properties/ContainerRecipeArn", + "/properties/InfrastructureConfigurationArn", + "/properties/Workflows", + "/properties/DistributionConfigurationArn", + "/properties/ImageTestsConfiguration", + "/properties/ImageScanningConfiguration", + "/properties/EnhancedImageMetadataEnabled", + "/properties/Tags" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Contains settings for Image Builder image resource and container image scans.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "The image tests configuration used when creating this image.", + "properties": { + "ImageTestsEnabled": { + "description": "ImageTestsEnabled", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "TimeoutMinutes", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "WorkflowConfiguration": { + "additionalProperties": false, + "description": "The workflow configuration of the image", + "properties": { + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "enum": [ + "CONTINUE", + "ABORT" + ], + "type": "string" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string" + }, + "Parameters": { + "description": "The parameters associated with the workflow", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "type": "array" + }, + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowParameter": { + "additionalProperties": false, + "description": "A parameter associated with the workflow", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowParameterValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", + "type": "string" + } + }, + "description": "Resource schema for AWS::ImageBuilder::Image", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:GetImage", + "imagebuilder:CreateImage", + "imagebuilder:TagResource", + "inspector2:BatchGetAccountStatus" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "imagebuilder:GetImage", + "imagebuilder:DeleteImage", + "imagebuilder:UnTagResource", + "imagebuilder:CancelImageCreation" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListImages" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImage" + ] + } + }, + "oneOf": [ + { + "required": [ + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string" + }, + "ImageId": { + "description": "The AMI ID of the EC2 AMI in current region.", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration used when creating this image." + }, + "ImageUri": { + "description": "URI for containers created in current Region with default ECR image tag", + "type": "string" + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", + "type": "string" + }, + "Name": { + "description": "The name of the image.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the image.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Name", + "/properties/ImageId", + "/properties/ImageUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Image" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-imagepipeline.json new file mode 100644 index 0000000000..3cf9b2a4a9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-imagepipeline.json @@ -0,0 +1,277 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "Image tests configuration.", + "properties": { + "ImageTestsEnabled": { + "description": "Defines if tests should be executed when building this image.", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "The maximum time in minutes that tests are permitted to run.", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "description": "The schedule of the image pipeline.", + "properties": { + "PipelineExecutionStartCondition": { + "description": "The condition configures when the pipeline should trigger a new image build.", + "enum": [ + "EXPRESSION_MATCH_ONLY", + "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + ], + "type": "string" + }, + "ScheduleExpression": { + "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowConfiguration": { + "additionalProperties": false, + "description": "The workflow configuration of the image", + "properties": { + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "enum": [ + "CONTINUE", + "ABORT" + ], + "type": "string" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string" + }, + "Parameters": { + "description": "The parameters associated with the workflow", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "type": "array" + }, + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowParameter": { + "additionalProperties": false, + "description": "A parameter associated with the workflow", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowParameterValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", + "type": "string" + } + }, + "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:CreateImagePipeline", + "imagebuilder:GetWorkflow", + "inspector2:BatchGetAccountStatus" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:UnTagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:DeleteImagePipeline" + ] + }, + "list": { + "permissions": [ + "imagebuilder:ListImagePipelines" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImagePipeline" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "imagebuilder:GetImagePipeline", + "imagebuilder:UpdateImagePipeline", + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Name", + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "Name", + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image pipeline.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "Description": { + "description": "The description of the image pipeline.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration of the image pipeline." + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", + "type": "string" + }, + "Name": { + "description": "The name of the image pipeline.", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule", + "description": "The schedule of the image pipeline." + }, + "Status": { + "description": "The status of the image pipeline.", + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags of this image pipeline.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::ImagePipeline" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-workflow.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-workflow.json new file mode 100644 index 0000000000..5c25c2361b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-workflow.json @@ -0,0 +1,145 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Version", + "/properties/ChangeDescription", + "/properties/Description", + "/properties/Data", + "/properties/Uri", + "/properties/Type", + "/properties/KmsKeyId", + "/properties/Tags" + ], + "description": "Resource schema for AWS::ImageBuilder::Workflow", + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "kms:GenerateDataKey*", + "kms:Encrypt", + "kms:Decrypt", + "s3:GetObject", + "s3:HeadBucket", + "s3:GetBucketLocation", + "imagebuilder:TagResource", + "imagebuilder:GetWorkflow", + "imagebuilder:CreateWorkflow" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:GetWorkflow", + "imagebuilder:UnTagResource", + "imagebuilder:DeleteWorkflow" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListWorkflows" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Data" + ] + }, + { + "required": [ + "Uri" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the workflow.", + "type": "string" + }, + "ChangeDescription": { + "description": "The change description of the workflow.", + "type": "string" + }, + "Data": { + "description": "The data of the workflow.", + "maxLength": 16000, + "minLength": 1, + "type": "string" + }, + "Description": { + "description": "The description of the workflow.", + "type": "string" + }, + "KmsKeyId": { + "description": "The KMS key identifier used to encrypt the workflow.", + "type": "string" + }, + "Name": { + "description": "The name of the workflow.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the workflow.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "description": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.", + "enum": [ + "BUILD", + "TEST", + "DISTRIBUTION" + ], + "type": "string" + }, + "Uri": { + "description": "The uri of the workflow.", + "type": "string" + }, + "Version": { + "description": "The version of the workflow.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "Name", + "Type", + "Version" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Workflow", + "writeOnlyProperties": [ + "/properties/Data", + "/properties/Uri" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-lambda-function.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-lambda-function.json deleted file mode 100644 index eef62c32fd..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-lambda-function.json +++ /dev/null @@ -1,619 +0,0 @@ -{ - "additionalProperties": false, - "cfnSchema": [ - "aws_lambda_function/zipfile_runtime_exists", - "aws_lambda_function/zipfile_runtime_enum" - ], - "createOnlyProperties": [ - "/properties/FunctionName" - ], - "definitions": { - "Code": { - "additionalProperties": false, - "properties": { - "ImageUri": { - "description": "ImageUri.", - "type": "string" - }, - "S3Bucket": { - "description": "An Amazon S3 bucket in the same AWS Region as your function. The bucket can be in a different AWS account.", - "maxLength": 63, - "minLength": 3, - "pattern": "^[0-9A-Za-z\\.\\-_]*(?The key or keys of the key-value pairs for the resource tag or tags assigned to the\n resource.

", - "properties": { - "Key": { - "description": "

Tag key.

", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "

Tag value.

", - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "A replication configuration that you later provide to configure and start a AWS DMS Serverless replication", - "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:RemoveTagsToResource", - "dms:ListTagsForResource", - "iam:CreateServiceLinkedRole", - "iam:AttachRolePolicy", - "iam:PutRolePolicy", - "iam:UpdateRoleDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicationConfigArn" - ], - "properties": { - "ComputeConfig": { - "$ref": "#/definitions/ComputeConfig" - }, - "ReplicationConfigArn": { - "description": "The Amazon Resource Name (ARN) of the Replication Config", - "type": "string" - }, - "ReplicationConfigIdentifier": { - "description": "A unique identifier of replication configuration", - "type": "string" - }, - "ReplicationSettings": { - "description": "JSON settings for Servereless replications that are provisioned using this replication configuration", - "type": "object" - }, - "ReplicationType": { - "description": "The type of AWS DMS Serverless replication to provision using this replication configuration", - "enum": [ - "full-load", - "full-load-and-cdc", - "cdc" - ], - "type": "string" - }, - "ResourceIdentifier": { - "description": "A unique value or name that you get set for a given resource that can be used to construct an Amazon Resource Name (ARN) for that resource", - "type": "string" - }, - "SourceEndpointArn": { - "description": "The Amazon Resource Name (ARN) of the source endpoint for this AWS DMS Serverless replication configuration", - "type": "string" - }, - "SupplementalSettings": { - "description": "JSON settings for specifying supplemental data", - "type": "object" - }, - "TableMappings": { - "description": "JSON table mappings for AWS DMS Serverless replications that are provisioned using this replication configuration", - "type": "object" - }, - "Tags": { - "description": "

Contains a map of the key-value pairs for the resource tag or tags assigned to the dataset.

", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 1, - "type": "array" - }, - "TargetEndpointArn": { - "description": "The Amazon Resource Name (ARN) of the target endpoint for this AWS DMS Serverless replication configuration", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/ReplicationConfigArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-dms", - "tagging": { - "cloudFormationSystemTags": false, - "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-ipamallocation.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-ipamallocation.json deleted file mode 100644 index 9a9a2fdf87..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-ipamallocation.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/IpamPoolId", - "/properties/Cidr", - "/properties/Description", - "/properties/NetmaskLength" - ], - "definitions": { - "Cidr": { - "description": "Represents an IPAM custom allocation of a single IPv4 or IPv6 CIDR", - "type": "string" - } - }, - "description": "Resource Schema of AWS::EC2::IPAMAllocation Type", - "handlers": { - "create": { - "permissions": [ - "ec2:AllocateIpamPoolCidr", - "ec2:GetIpamPoolAllocations" - ] - }, - "delete": { - "permissions": [ - "ec2:ReleaseIpamPoolAllocation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "IpamPoolId": { - "$ref": "resource-schema.json#/properties/IpamPoolId" - } - }, - "required": [ - "IpamPoolId" - ] - }, - "permissions": [ - "ec2:GetIpamPoolAllocations" - ] - }, - "read": { - "permissions": [ - "ec2:GetIpamPoolAllocations" - ] - } - }, - "primaryIdentifier": [ - "/properties/IpamPoolId", - "/properties/IpamPoolAllocationId", - "/properties/Cidr" - ], - "properties": { - "Cidr": { - "$ref": "#/definitions/Cidr" - }, - "Description": { - "type": "string" - }, - "IpamPoolAllocationId": { - "description": "Id of the allocation.", - "type": "string" - }, - "IpamPoolId": { - "description": "Id of the IPAM Pool.", - "type": "string" - }, - "NetmaskLength": { - "description": "The desired netmask length of the allocation. If set, IPAM will choose a block of free space with this size and return the CIDR representing it.", - "type": "integer" - } - }, - "readOnlyProperties": [ - "/properties/IpamPoolAllocationId" - ], - "required": [ - "IpamPoolId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::IPAMAllocation", - "writeOnlyProperties": [ - "/properties/NetmaskLength" - ] -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-subnet.json similarity index 98% rename from src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-subnet.json rename to src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-subnet.json index 4a658f1cd4..b4469516b4 100644 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-subnet.json +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-subnet.json @@ -141,8 +141,7 @@ }, "readOnlyProperties": [ "/properties/NetworkAclAssociationId", - "/properties/SubnetId", - "/properties/Ipv6CidrBlocks" + "/properties/SubnetId" ], "required": [ "VpcId" diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ecs-capacityprovider.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ecs-capacityprovider.json deleted file mode 100644 index 1b13eef3a1..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ecs-capacityprovider.json +++ /dev/null @@ -1,141 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AutoScalingGroupProvider/AutoScalingGroupArn", - "/properties/Name" - ], - "definitions": { - "AutoScalingGroupProvider": { - "additionalProperties": false, - "properties": { - "AutoScalingGroupArn": { - "type": "string" - }, - "ManagedDraining": { - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "ManagedScaling": { - "$ref": "#/definitions/ManagedScaling" - }, - "ManagedTerminationProtection": { - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - } - }, - "required": [ - "AutoScalingGroupArn" - ], - "type": "object" - }, - "ManagedScaling": { - "additionalProperties": false, - "description": "The managed scaling settings for the Auto Scaling group capacity provider.", - "properties": { - "InstanceWarmupPeriod": { - "type": "integer" - }, - "MaximumScalingStepSize": { - "type": "integer" - }, - "MinimumScalingStepSize": { - "type": "integer" - }, - "Status": { - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "TargetCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "minLength": 1, - "type": "string" - }, - "Value": { - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::ECS::CapacityProvider.", - "handlers": { - "create": { - "permissions": [ - "autoscaling:CreateOrUpdateTags", - "ecs:CreateCapacityProvider", - "ecs:DescribeCapacityProviders", - "ecs:TagResource" - ] - }, - "delete": { - "permissions": [ - "ecs:DescribeCapacityProviders", - "ecs:DeleteCapacityProvider" - ] - }, - "list": { - "permissions": [ - "ecs:DescribeCapacityProviders" - ] - }, - "read": { - "permissions": [ - "ecs:DescribeCapacityProviders" - ] - }, - "update": { - "permissions": [ - "ecs:UpdateCapacityProvider", - "ecs:DescribeCapacityProviders", - "ecs:ListTagsForResource", - "ecs:TagResource", - "ecs:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Name" - ], - "properties": { - "AutoScalingGroupProvider": { - "$ref": "#/definitions/AutoScalingGroupProvider" - }, - "Name": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "propertyTransform": { - "/properties/AutoScalingGroupProvider/AutoScalingGroupArn": "$split(AutoScalingGroupProvider.AutoScalingGroupArn, \"autoScalingGroupName/\")[-1] $OR $split(AutoScalingGroupArn, \"autoScalingGroupName/\")[-1]" - }, - "required": [ - "AutoScalingGroupProvider" - ], - "tagging": { - "taggable": true - }, - "typeName": "AWS::ECS::CapacityProvider" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-emr-cluster.json new file mode 100644 index 0000000000..7ce37fccb6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-emr-cluster.json @@ -0,0 +1,858 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Steps", + "/properties/EbsRootVolumeSize", + "/properties/SecurityConfiguration", + "/properties/ScaleDownBehavior", + "/properties/Configurations", + "/properties/ReleaseLabel", + "/properties/BootstrapActions", + "/properties/EbsRootVolumeIops", + "/properties/KerberosAttributes", + "/properties/ServiceRole", + "/properties/LogEncryptionKmsKeyId", + "/properties/Name", + "/properties/EbsRootVolumeThroughput", + "/properties/JobFlowRole", + "/properties/AdditionalInfo", + "/properties/LogUri", + "/properties/CustomAmiId", + "/properties/PlacementGroupConfigs", + "/properties/OSReleaseLabel", + "/properties/AutoScalingRole", + "/properties/Applications" + ], + "definitions": { + "Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ScalingRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/ScriptBootstrapActionConfig" + } + }, + "required": [ + "ScriptBootstrapAction", + "Name" + ], + "type": "object" + }, + "CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "EvaluationPeriods": { + "type": "integer" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "integer" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "ComparisonOperator", + "Period", + "Threshold" + ], + "type": "object" + }, + "ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "integer" + }, + "MaximumCoreCapacityUnits": { + "type": "integer" + }, + "MaximumOnDemandCapacityUnits": { + "type": "integer" + }, + "MinimumCapacityUnits": { + "type": "integer" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "UnitType", + "MaximumCapacityUnits", + "MinimumCapacityUnits" + ], + "type": "object" + }, + "Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "integer" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/EbsBlockDeviceConfig" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/KeyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/InstanceTypeConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchSpecifications": { + "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "integer" + }, + "TargetSpotCapacity": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/OnDemandProvisioningSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/SpotProvisioningSpecification" + } + }, + "type": "object" + }, + "InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceType": { + "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", + "type": "string" + }, + "WeightedCapacity": { + "type": "integer" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/ComputeLimits" + } + }, + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "PlacementGroupConfig": { + "additionalProperties": false, + "properties": { + "InstanceRole": { + "type": "string" + }, + "PlacementStrategy": { + "type": "string" + } + }, + "required": [ + "InstanceRole" + ], + "type": "object" + }, + "PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/ScalingTrigger" + } + }, + "required": [ + "Action", + "Trigger", + "Name" + ], + "type": "object" + }, + "ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BlockDurationMinutes": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "integer" + } + }, + "required": [ + "TimeoutDurationMinutes", + "TimeoutAction" + ], + "type": "object" + }, + "StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "integer" + }, + "SizeInGB": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EMR::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/Application" + }, + "type": "array", + "uniqueItems": true + }, + "AutoScalingRole": { + "type": "string" + }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AutoTerminationPolicy" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/BootstrapActionConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeIops": { + "type": "integer" + }, + "EbsRootVolumeSize": { + "type": "integer" + }, + "EbsRootVolumeThroughput": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Instances": { + "$ref": "#/definitions/JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/KerberosAttributes" + }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, + "LogUri": { + "type": "string" + }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/ManagedScalingPolicy" + }, + "MasterPublicDNS": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OSReleaseLabel": { + "type": "string" + }, + "PlacementGroupConfigs": { + "items": { + "$ref": "#/definitions/PlacementGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "StepConcurrencyLevel": { + "type": "integer" + }, + "Steps": { + "items": { + "$ref": "#/definitions/StepConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/MasterPublicDNS" + ], + "required": [ + "Instances", + "ServiceRole", + "JobFlowRole", + "Name" + ], + "typeName": "AWS::EMR::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-emr-studiosessionmapping.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-emr-studiosessionmapping.json deleted file mode 100644 index bfb5c89509..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-emr-studiosessionmapping.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StudioId", - "/properties/IdentityType", - "/properties/IdentityName" - ], - "definitions": { - "IamPolicyArn": { - "pattern": "^arn:aws(-(cn|us-gov))?:iam::([0-9]{12})?:policy\\/[^.]+$", - "type": "string" - } - }, - "description": "An example resource schema demonstrating some basic constructs and validation rules.", - "documentationUrl": "https://docs.aws.amazon.com/cli/latest/reference/emr/create-studio-session-mapping.html", - "handlers": { - "create": { - "permissions": [ - "elasticmapreduce:CreateStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:ListDirectoryAssociations", - "sso:GetProfile", - "sso:ListProfiles", - "sso:AssociateProfile" - ] - }, - "delete": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "elasticmapreduce:DeleteStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance", - "sso:DescribeInstance", - "sso:ListDirectoryAssociations", - "sso:GetProfile", - "sso:ListProfiles", - "sso:DisassociateProfile" - ] - }, - "list": { - "permissions": [ - "elasticmapreduce:ListStudioSessionMappings" - ] - }, - "read": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance", - "sso:DescribeInstance" - ] - }, - "update": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "elasticmapreduce:UpdateStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance", - "sso:DescribeInstance" - ] - } - }, - "primaryIdentifier": [ - "/properties/StudioId", - "/properties/IdentityType", - "/properties/IdentityName" - ], - "properties": { - "IdentityName": { - "description": "The name of the user or group. For more information, see UserName and DisplayName in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId must be specified.", - "type": "string" - }, - "IdentityType": { - "description": "Specifies whether the identity to map to the Studio is a user or a group.", - "enum": [ - "USER", - "GROUP" - ], - "type": "string" - }, - "SessionPolicyArn": { - "$ref": "#/definitions/IamPolicyArn", - "description": "The Amazon Resource Name (ARN) for the session policy that will be applied to the user or group. Session policies refine Studio user permissions without the need to use multiple IAM user roles." - }, - "StudioId": { - "description": "The ID of the Amazon EMR Studio to which the user or group will be mapped.", - "maxLength": 256, - "minLength": 4, - "pattern": "^es-[0-9A-Z]+", - "type": "string" - } - }, - "required": [ - "StudioId", - "IdentityName", - "IdentityType", - "SessionPolicyArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::EMR::StudioSessionMapping" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-eventschemas-discoverer.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-eventschemas-discoverer.json deleted file mode 100644 index c01fbeae42..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-eventschemas-discoverer.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SourceArn" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EventSchemas::Discoverer", - "handlers": { - "create": { - "permissions": [ - "schemas:CreateDiscoverer", - "schemas:DescribeDiscoverer", - "schemas:TagResource", - "events:PutRule", - "events:PutTargets", - "events:EnableRule", - "events:ListTargetsByRule", - "iam:CreateServiceLinkedRole" - ] - }, - "delete": { - "permissions": [ - "schemas:DescribeDiscoverer", - "schemas:DeleteDiscoverer", - "events:DeleteRule", - "events:DisableRule", - "events:RemoveTargets" - ] - }, - "list": { - "permissions": [ - "schemas:ListDiscoverers" - ] - }, - "read": { - "permissions": [ - "schemas:DescribeDiscoverer" - ] - }, - "update": { - "permissions": [ - "schemas:DescribeDiscoverer", - "schemas:UpdateDiscoverer", - "schemas:TagResource", - "schemas:UntagResource", - "schemas:ListTagsForResource", - "events:PutTargets", - "events:PutRule" - ] - } - }, - "primaryIdentifier": [ - "/properties/DiscovererArn" - ], - "properties": { - "CrossAccount": { - "default": true, - "description": "Defines whether event schemas from other accounts are discovered. Default is True.", - "type": "boolean" - }, - "Description": { - "description": "A description for the discoverer.", - "type": "string" - }, - "DiscovererArn": { - "description": "The ARN of the discoverer.", - "type": "string" - }, - "DiscovererId": { - "description": "The Id of the discoverer.", - "type": "string" - }, - "SourceArn": { - "description": "The ARN of the event bus.", - "type": "string" - }, - "State": { - "description": "Defines the current state of the discoverer.", - "type": "string" - }, - "Tags": { - "description": "Tags associated with the resource.", - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/DiscovererArn", - "/properties/DiscovererId", - "/properties/State" - ], - "required": [ - "SourceArn" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EventSchemas::Discoverer" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-eventschemas-registry.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-eventschemas-registry.json deleted file mode 100644 index 64db402b7f..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-eventschemas-registry.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/RegistryName" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EventSchemas::Registry", - "handlers": { - "create": { - "permissions": [ - "schemas:DescribeRegistry", - "schemas:CreateRegistry", - "schemas:TagResource" - ] - }, - "delete": { - "permissions": [ - "schemas:DescribeRegistry", - "schemas:DeleteRegistry" - ] - }, - "list": { - "permissions": [ - "schemas:ListRegistries" - ] - }, - "read": { - "permissions": [ - "schemas:DescribeRegistry" - ] - }, - "update": { - "permissions": [ - "schemas:DescribeRegistry", - "schemas:UpdateRegistry", - "schemas:TagResource", - "schemas:UntagResource", - "schemas:ListTagsForResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/RegistryArn" - ], - "properties": { - "Description": { - "description": "A description of the registry to be created.", - "type": "string" - }, - "RegistryArn": { - "description": "The ARN of the registry.", - "type": "string" - }, - "RegistryName": { - "description": "The name of the schema registry.", - "type": "string" - }, - "Tags": { - "description": "Tags associated with the resource.", - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/RegistryArn" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EventSchemas::Registry" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-eventschemas-schema.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-eventschemas-schema.json deleted file mode 100644 index db827f8fa4..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-eventschemas-schema.json +++ /dev/null @@ -1,141 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SchemaName", - "/properties/RegistryName" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EventSchemas::Schema", - "handlers": { - "create": { - "permissions": [ - "schemas:DescribeSchema", - "schemas:CreateSchema", - "schemas:TagResource" - ] - }, - "delete": { - "permissions": [ - "schemas:DescribeSchema", - "schemas:DeleteSchema", - "schemas:DeleteSchemaVersion" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "RegistryName": { - "type": "string" - } - }, - "required": [ - "RegistryName" - ] - }, - "permissions": [ - "schemas:ListSchemas", - "schemas:ListSchemaVersions" - ] - }, - "read": { - "permissions": [ - "schemas:DescribeSchema" - ] - }, - "update": { - "permissions": [ - "schemas:DescribeSchema", - "schemas:UpdateSchema", - "schemas:TagResource", - "schemas:UntagResource", - "schemas:ListTagsForResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/SchemaArn" - ], - "properties": { - "Content": { - "description": "The source of the schema definition.", - "type": "string" - }, - "Description": { - "description": "A description of the schema.", - "type": "string" - }, - "LastModified": { - "description": "The last modified time of the schema.", - "type": "string" - }, - "RegistryName": { - "description": "The name of the schema registry.", - "type": "string" - }, - "SchemaArn": { - "description": "The ARN of the schema.", - "type": "string" - }, - "SchemaName": { - "description": "The name of the schema.", - "type": "string" - }, - "SchemaVersion": { - "description": "The version number of the schema.", - "type": "string" - }, - "Tags": { - "description": "Tags associated with the resource.", - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - }, - "Type": { - "description": "The type of schema. Valid types include OpenApi3 and JSONSchemaDraft4.", - "type": "string" - }, - "VersionCreatedDate": { - "description": "The date the schema version was created.", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/SchemaArn", - "/properties/LastModified", - "/properties/VersionCreatedDate", - "/properties/SchemaVersion" - ], - "required": [ - "Type", - "Content", - "RegistryName" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-eventschemas", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EventSchemas::Schema" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-fis-experimenttemplate.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-fis-experimenttemplate.json deleted file mode 100644 index 44471088cb..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-fis-experimenttemplate.json +++ /dev/null @@ -1,399 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Tags", - "/properties/ExperimentOptions/AccountTargeting" - ], - "definitions": { - "ActionId": { - "description": "The ID of the action.", - "maxLength": 64, - "type": "string" - }, - "ExperimentTemplateAction": { - "additionalProperties": false, - "description": "Specifies an action for the experiment template.", - "properties": { - "ActionId": { - "$ref": "#/definitions/ActionId" - }, - "Description": { - "$ref": "#/definitions/ExperimentTemplateActionItemDescription" - }, - "Parameters": { - "additionalProperties": false, - "description": "The parameters for the action, if applicable.", - "patternProperties": { - ".{1,64}": { - "$ref": "#/definitions/ExperimentTemplateActionItemParameter" - } - }, - "type": "object" - }, - "StartAfter": { - "$ref": "#/definitions/ExperimentTemplateActionItemStartAfterList" - }, - "Targets": { - "additionalProperties": false, - "description": "One or more targets for the action.", - "patternProperties": { - ".{1,64}": { - "$ref": "#/definitions/ExperimentTemplateActionItemTarget" - } - }, - "type": "object" - } - }, - "required": [ - "ActionId" - ], - "type": "object" - }, - "ExperimentTemplateActionItemDescription": { - "description": "A description for the action.", - "maxLength": 512, - "type": "string" - }, - "ExperimentTemplateActionItemParameter": { - "maxLength": 1024, - "type": "string" - }, - "ExperimentTemplateActionItemStartAfter": { - "maxLength": 64, - "type": "string" - }, - "ExperimentTemplateActionItemStartAfterList": { - "description": "The names of the actions that must be completed before the current action starts.", - "items": { - "$ref": "#/definitions/ExperimentTemplateActionItemStartAfter" - }, - "type": "array" - }, - "ExperimentTemplateActionItemTarget": { - "maxLength": 64, - "type": "string" - }, - "ExperimentTemplateActionMap": { - "additionalProperties": false, - "description": "The actions for the experiment.", - "patternProperties": { - "[\\S]{1,64}": { - "$ref": "#/definitions/ExperimentTemplateAction" - } - }, - "type": "object" - }, - "ExperimentTemplateDescription": { - "description": "A description for the experiment template.", - "maxLength": 512, - "type": "string" - }, - "ExperimentTemplateExperimentOptions": { - "additionalProperties": false, - "properties": { - "AccountTargeting": { - "description": "The account targeting setting for the experiment template.", - "enum": [ - "multi-account", - "single-account" - ], - "type": "string" - }, - "EmptyTargetResolutionMode": { - "description": "The target resolution failure mode for the experiment template.", - "enum": [ - "fail", - "skip" - ], - "type": "string" - } - }, - "type": "object" - }, - "ExperimentTemplateId": { - "type": "string" - }, - "ExperimentTemplateLogConfiguration": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsConfiguration": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - } - }, - "required": [ - "LogGroupArn" - ], - "type": "object" - }, - "LogSchemaVersion": { - "minimum": 1, - "type": "integer" - }, - "S3Configuration": { - "additionalProperties": false, - "properties": { - "BucketName": { - "maxLength": 63, - "minLength": 3, - "type": "string" - }, - "Prefix": { - "maxLength": 1024, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "BucketName" - ], - "type": "object" - } - }, - "required": [ - "LogSchemaVersion" - ], - "type": "object" - }, - "ExperimentTemplateStopCondition": { - "additionalProperties": false, - "properties": { - "Source": { - "$ref": "#/definitions/StopConditionSource" - }, - "Value": { - "$ref": "#/definitions/StopConditionValue" - } - }, - "required": [ - "Source" - ], - "type": "object" - }, - "ExperimentTemplateStopConditionList": { - "description": "One or more stop conditions.", - "items": { - "$ref": "#/definitions/ExperimentTemplateStopCondition" - }, - "type": "array" - }, - "ExperimentTemplateTarget": { - "additionalProperties": false, - "description": "Specifies a target for an experiment.", - "properties": { - "Filters": { - "$ref": "#/definitions/ExperimentTemplateTargetFilterList" - }, - "Parameters": { - "additionalProperties": false, - "patternProperties": { - ".{1,64}": { - "maxLength": 1024, - "type": "string" - } - }, - "type": "object" - }, - "ResourceArns": { - "$ref": "#/definitions/ResourceArnList" - }, - "ResourceTags": { - "additionalProperties": false, - "patternProperties": { - ".{1,128}": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - }, - "ResourceType": { - "$ref": "#/definitions/ResourceType" - }, - "SelectionMode": { - "$ref": "#/definitions/ExperimentTemplateTargetSelectionMode" - } - }, - "required": [ - "ResourceType", - "SelectionMode" - ], - "type": "object" - }, - "ExperimentTemplateTargetFilter": { - "additionalProperties": false, - "description": "Describes a filter used for the target resource input in an experiment template.", - "properties": { - "Path": { - "$ref": "#/definitions/ExperimentTemplateTargetFilterPath" - }, - "Values": { - "$ref": "#/definitions/ExperimentTemplateTargetFilterValues" - } - }, - "required": [ - "Path", - "Values" - ], - "type": "object" - }, - "ExperimentTemplateTargetFilterList": { - "items": { - "$ref": "#/definitions/ExperimentTemplateTargetFilter" - }, - "type": "array" - }, - "ExperimentTemplateTargetFilterPath": { - "description": "The attribute path for the filter.", - "maxLength": 256, - "type": "string" - }, - "ExperimentTemplateTargetFilterValue": { - "maxLength": 128, - "type": "string" - }, - "ExperimentTemplateTargetFilterValues": { - "description": "The attribute values for the filter.", - "items": { - "$ref": "#/definitions/ExperimentTemplateTargetFilterValue" - }, - "type": "array" - }, - "ExperimentTemplateTargetMap": { - "additionalProperties": false, - "description": "The targets for the experiment.", - "patternProperties": { - ".{1,64}": { - "$ref": "#/definitions/ExperimentTemplateTarget" - } - }, - "type": "object" - }, - "ExperimentTemplateTargetSelectionMode": { - "description": "Scopes the identified resources to a specific number of the resources at random, or a percentage of the resources.", - "maxLength": 64, - "type": "string" - }, - "ResourceArn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - }, - "ResourceArnList": { - "description": "The Amazon Resource Names (ARNs) of the target resources.", - "items": { - "$ref": "#/definitions/ResourceArn" - }, - "type": "array" - }, - "ResourceType": { - "description": "The AWS resource type. The resource type must be supported for the specified action.", - "maxLength": 64, - "type": "string" - }, - "RoleArn": { - "description": "The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.", - "maxLength": 1224, - "type": "string" - }, - "StopConditionSource": { - "maxLength": 64, - "type": "string" - }, - "StopConditionValue": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - } - }, - "description": "Resource schema for AWS::FIS::ExperimentTemplate", - "handlers": { - "create": { - "permissions": [ - "fis:CreateExperimentTemplate", - "fis:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "fis:DeleteExperimentTemplate" - ] - }, - "list": { - "permissions": [ - "fis:ListExperimentTemplates", - "fis:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "fis:GetExperimentTemplate", - "fis:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "fis:UpdateExperimentTemplate", - "fis:TagResource", - "fis:UntagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Actions": { - "$ref": "#/definitions/ExperimentTemplateActionMap" - }, - "Description": { - "$ref": "#/definitions/ExperimentTemplateDescription" - }, - "ExperimentOptions": { - "$ref": "#/definitions/ExperimentTemplateExperimentOptions" - }, - "Id": { - "$ref": "#/definitions/ExperimentTemplateId" - }, - "LogConfiguration": { - "$ref": "#/definitions/ExperimentTemplateLogConfiguration" - }, - "RoleArn": { - "$ref": "#/definitions/RoleArn" - }, - "StopConditions": { - "$ref": "#/definitions/ExperimentTemplateStopConditionList" - }, - "Tags": { - "additionalProperties": false, - "patternProperties": { - ".{1,128}": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - }, - "Targets": { - "$ref": "#/definitions/ExperimentTemplateTargetMap" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Description", - "StopConditions", - "Targets", - "RoleArn", - "Tags" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fis.git", - "typeName": "AWS::FIS::ExperimentTemplate" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-fis-targetaccountconfiguration.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-fis-targetaccountconfiguration.json deleted file mode 100644 index 152a59c5bb..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-fis-targetaccountconfiguration.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ExperimentTemplateId", - "/properties/AccountId" - ], - "definitions": { - "TargetAccountConfigurationDescription": { - "description": "The description of the target account.", - "maxLength": 512, - "type": "string" - }, - "TargetAccountId": { - "description": "The AWS account ID of the target account.", - "maxLength": 512, - "type": "string" - }, - "TargetAccountRoleArn": { - "description": "The Amazon Resource Name (ARN) of an IAM role for the target account.", - "maxLength": 1224, - "type": "string" - }, - "TargetExperimentTemplateId": { - "description": "The ID of the experiment template.", - "type": "string" - } - }, - "description": "Resource schema for AWS::FIS::TargetAccountConfiguration", - "handlers": { - "create": { - "permissions": [ - "fis:CreateTargetAccountConfiguration" - ] - }, - "delete": { - "permissions": [ - "fis:DeleteTargetAccountConfiguration" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ExperimentTemplateId": { - "$ref": "resource-schema.json#/properties/ExperimentTemplateId" - } - }, - "required": [ - "ExperimentTemplateId" - ] - }, - "permissions": [ - "fis:ListTargetAccountConfigurations" - ] - }, - "read": { - "permissions": [ - "fis:GetTargetAccountConfiguration" - ] - }, - "update": { - "permissions": [ - "fis:UpdateTargetAccountConfiguration" - ] - } - }, - "primaryIdentifier": [ - "/properties/ExperimentTemplateId", - "/properties/AccountId" - ], - "properties": { - "AccountId": { - "$ref": "#/definitions/TargetAccountId" - }, - "Description": { - "$ref": "#/definitions/TargetAccountConfigurationDescription" - }, - "ExperimentTemplateId": { - "$ref": "#/definitions/TargetExperimentTemplateId" - }, - "RoleArn": { - "$ref": "#/definitions/TargetAccountRoleArn" - } - }, - "required": [ - "ExperimentTemplateId", - "AccountId", - "RoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fis.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::FIS::TargetAccountConfiguration" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-image.json new file mode 100644 index 0000000000..223d64e03e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-image.json @@ -0,0 +1,263 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ImageRecipeArn", + "/properties/ContainerRecipeArn", + "/properties/InfrastructureConfigurationArn", + "/properties/Workflows", + "/properties/DistributionConfigurationArn", + "/properties/ImageTestsConfiguration", + "/properties/ImageScanningConfiguration", + "/properties/EnhancedImageMetadataEnabled", + "/properties/Tags" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Contains settings for Image Builder image resource and container image scans.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "The image tests configuration used when creating this image.", + "properties": { + "ImageTestsEnabled": { + "description": "ImageTestsEnabled", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "TimeoutMinutes", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "WorkflowConfiguration": { + "additionalProperties": false, + "description": "The workflow configuration of the image", + "properties": { + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "enum": [ + "CONTINUE", + "ABORT" + ], + "type": "string" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string" + }, + "Parameters": { + "description": "The parameters associated with the workflow", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "type": "array" + }, + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowParameter": { + "additionalProperties": false, + "description": "A parameter associated with the workflow", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowParameterValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", + "type": "string" + } + }, + "description": "Resource schema for AWS::ImageBuilder::Image", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:GetImage", + "imagebuilder:CreateImage", + "imagebuilder:TagResource", + "inspector2:BatchGetAccountStatus" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "imagebuilder:GetImage", + "imagebuilder:DeleteImage", + "imagebuilder:UnTagResource", + "imagebuilder:CancelImageCreation" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListImages" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImage" + ] + } + }, + "oneOf": [ + { + "required": [ + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string" + }, + "ImageId": { + "description": "The AMI ID of the EC2 AMI in current region.", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration used when creating this image." + }, + "ImageUri": { + "description": "URI for containers created in current Region with default ECR image tag", + "type": "string" + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", + "type": "string" + }, + "Name": { + "description": "The name of the image.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the image.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Name", + "/properties/ImageId", + "/properties/ImageUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Image" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-imagepipeline.json new file mode 100644 index 0000000000..3cf9b2a4a9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-imagepipeline.json @@ -0,0 +1,277 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "Image tests configuration.", + "properties": { + "ImageTestsEnabled": { + "description": "Defines if tests should be executed when building this image.", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "The maximum time in minutes that tests are permitted to run.", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "description": "The schedule of the image pipeline.", + "properties": { + "PipelineExecutionStartCondition": { + "description": "The condition configures when the pipeline should trigger a new image build.", + "enum": [ + "EXPRESSION_MATCH_ONLY", + "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + ], + "type": "string" + }, + "ScheduleExpression": { + "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowConfiguration": { + "additionalProperties": false, + "description": "The workflow configuration of the image", + "properties": { + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "enum": [ + "CONTINUE", + "ABORT" + ], + "type": "string" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string" + }, + "Parameters": { + "description": "The parameters associated with the workflow", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "type": "array" + }, + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowParameter": { + "additionalProperties": false, + "description": "A parameter associated with the workflow", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowParameterValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", + "type": "string" + } + }, + "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:CreateImagePipeline", + "imagebuilder:GetWorkflow", + "inspector2:BatchGetAccountStatus" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:UnTagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:DeleteImagePipeline" + ] + }, + "list": { + "permissions": [ + "imagebuilder:ListImagePipelines" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImagePipeline" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "imagebuilder:GetImagePipeline", + "imagebuilder:UpdateImagePipeline", + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Name", + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "Name", + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image pipeline.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "Description": { + "description": "The description of the image pipeline.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration of the image pipeline." + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", + "type": "string" + }, + "Name": { + "description": "The name of the image pipeline.", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule", + "description": "The schedule of the image pipeline." + }, + "Status": { + "description": "The status of the image pipeline.", + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags of this image pipeline.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::ImagePipeline" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-workflow.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-workflow.json new file mode 100644 index 0000000000..5c25c2361b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-workflow.json @@ -0,0 +1,145 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Version", + "/properties/ChangeDescription", + "/properties/Description", + "/properties/Data", + "/properties/Uri", + "/properties/Type", + "/properties/KmsKeyId", + "/properties/Tags" + ], + "description": "Resource schema for AWS::ImageBuilder::Workflow", + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "kms:GenerateDataKey*", + "kms:Encrypt", + "kms:Decrypt", + "s3:GetObject", + "s3:HeadBucket", + "s3:GetBucketLocation", + "imagebuilder:TagResource", + "imagebuilder:GetWorkflow", + "imagebuilder:CreateWorkflow" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:GetWorkflow", + "imagebuilder:UnTagResource", + "imagebuilder:DeleteWorkflow" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListWorkflows" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Data" + ] + }, + { + "required": [ + "Uri" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the workflow.", + "type": "string" + }, + "ChangeDescription": { + "description": "The change description of the workflow.", + "type": "string" + }, + "Data": { + "description": "The data of the workflow.", + "maxLength": 16000, + "minLength": 1, + "type": "string" + }, + "Description": { + "description": "The description of the workflow.", + "type": "string" + }, + "KmsKeyId": { + "description": "The KMS key identifier used to encrypt the workflow.", + "type": "string" + }, + "Name": { + "description": "The name of the workflow.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the workflow.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "description": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.", + "enum": [ + "BUILD", + "TEST", + "DISTRIBUTION" + ], + "type": "string" + }, + "Uri": { + "description": "The uri of the workflow.", + "type": "string" + }, + "Version": { + "description": "The version of the workflow.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "Name", + "Type", + "Version" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Workflow", + "writeOnlyProperties": [ + "/properties/Data", + "/properties/Uri" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-iot-certificateprovider.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-iot-certificateprovider.json new file mode 100644 index 0000000000..6bd3e2a0a3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-iot-certificateprovider.json @@ -0,0 +1,129 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateProviderName" + ], + "definitions": { + "CertificateProviderOperation": { + "enum": [ + "CreateCertificateFromCsr" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 1 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Use the AWS::IoT::CertificateProvider resource to declare an AWS IoT Certificate Provider.", + "handlers": { + "create": { + "permissions": [ + "iot:CreateCertificateProvider", + "iot:DescribeCertificateProvider", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeleteCertificateProvider", + "iot:DescribeCertificateProvider" + ] + }, + "list": { + "permissions": [ + "iot:ListCertificateProviders" + ] + }, + "read": { + "permissions": [ + "iot:DescribeCertificateProvider", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:UpdateCertificateProvider", + "iot:DescribeCertificateProvider", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/CertificateProviderName" + ], + "properties": { + "AccountDefaultForOperations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CertificateProviderOperation" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Arn": { + "type": "string" + }, + "CertificateProviderName": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "LambdaFunctionArn": { + "maxLength": 170, + "minLength": 1, + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "replacementStrategy": "delete_then_create", + "required": [ + "LambdaFunctionArn", + "AccountDefaultForOperations" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::CertificateProvider" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-lambda-function.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-lambda-function.json deleted file mode 100644 index eef62c32fd..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-lambda-function.json +++ /dev/null @@ -1,619 +0,0 @@ -{ - "additionalProperties": false, - "cfnSchema": [ - "aws_lambda_function/zipfile_runtime_exists", - "aws_lambda_function/zipfile_runtime_enum" - ], - "createOnlyProperties": [ - "/properties/FunctionName" - ], - "definitions": { - "Code": { - "additionalProperties": false, - "properties": { - "ImageUri": { - "description": "ImageUri.", - "type": "string" - }, - "S3Bucket": { - "description": "An Amazon S3 bucket in the same AWS Region as your function. The bucket can be in a different AWS account.", - "maxLength": 63, - "minLength": 3, - "pattern": "^[0-9A-Za-z\\.\\-_]*(?The key or keys of the key-value pairs for the resource tag or tags assigned to the\n resource.

", - "properties": { - "Key": { - "description": "

Tag key.

", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "

Tag value.

", - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "A replication configuration that you later provide to configure and start a AWS DMS Serverless replication", - "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:RemoveTagsToResource", - "dms:ListTagsForResource", - "iam:CreateServiceLinkedRole", - "iam:AttachRolePolicy", - "iam:PutRolePolicy", - "iam:UpdateRoleDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicationConfigArn" - ], - "properties": { - "ComputeConfig": { - "$ref": "#/definitions/ComputeConfig" - }, - "ReplicationConfigArn": { - "description": "The Amazon Resource Name (ARN) of the Replication Config", - "type": "string" - }, - "ReplicationConfigIdentifier": { - "description": "A unique identifier of replication configuration", - "type": "string" - }, - "ReplicationSettings": { - "description": "JSON settings for Servereless replications that are provisioned using this replication configuration", - "type": "object" - }, - "ReplicationType": { - "description": "The type of AWS DMS Serverless replication to provision using this replication configuration", - "enum": [ - "full-load", - "full-load-and-cdc", - "cdc" - ], - "type": "string" - }, - "ResourceIdentifier": { - "description": "A unique value or name that you get set for a given resource that can be used to construct an Amazon Resource Name (ARN) for that resource", - "type": "string" - }, - "SourceEndpointArn": { - "description": "The Amazon Resource Name (ARN) of the source endpoint for this AWS DMS Serverless replication configuration", - "type": "string" - }, - "SupplementalSettings": { - "description": "JSON settings for specifying supplemental data", - "type": "object" - }, - "TableMappings": { - "description": "JSON table mappings for AWS DMS Serverless replications that are provisioned using this replication configuration", - "type": "object" - }, - "Tags": { - "description": "

Contains a map of the key-value pairs for the resource tag or tags assigned to the dataset.

", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 1, - "type": "array" - }, - "TargetEndpointArn": { - "description": "The Amazon Resource Name (ARN) of the target endpoint for this AWS DMS Serverless replication configuration", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/ReplicationConfigArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-dms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::DMS::ReplicationConfig" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-emr-cluster.json new file mode 100644 index 0000000000..7ce37fccb6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-emr-cluster.json @@ -0,0 +1,858 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Steps", + "/properties/EbsRootVolumeSize", + "/properties/SecurityConfiguration", + "/properties/ScaleDownBehavior", + "/properties/Configurations", + "/properties/ReleaseLabel", + "/properties/BootstrapActions", + "/properties/EbsRootVolumeIops", + "/properties/KerberosAttributes", + "/properties/ServiceRole", + "/properties/LogEncryptionKmsKeyId", + "/properties/Name", + "/properties/EbsRootVolumeThroughput", + "/properties/JobFlowRole", + "/properties/AdditionalInfo", + "/properties/LogUri", + "/properties/CustomAmiId", + "/properties/PlacementGroupConfigs", + "/properties/OSReleaseLabel", + "/properties/AutoScalingRole", + "/properties/Applications" + ], + "definitions": { + "Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ScalingRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/ScriptBootstrapActionConfig" + } + }, + "required": [ + "ScriptBootstrapAction", + "Name" + ], + "type": "object" + }, + "CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "EvaluationPeriods": { + "type": "integer" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "integer" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "ComparisonOperator", + "Period", + "Threshold" + ], + "type": "object" + }, + "ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "integer" + }, + "MaximumCoreCapacityUnits": { + "type": "integer" + }, + "MaximumOnDemandCapacityUnits": { + "type": "integer" + }, + "MinimumCapacityUnits": { + "type": "integer" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "UnitType", + "MaximumCapacityUnits", + "MinimumCapacityUnits" + ], + "type": "object" + }, + "Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "integer" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/EbsBlockDeviceConfig" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/KeyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/InstanceTypeConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchSpecifications": { + "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "integer" + }, + "TargetSpotCapacity": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/OnDemandProvisioningSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/SpotProvisioningSpecification" + } + }, + "type": "object" + }, + "InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceType": { + "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", + "type": "string" + }, + "WeightedCapacity": { + "type": "integer" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/ComputeLimits" + } + }, + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "PlacementGroupConfig": { + "additionalProperties": false, + "properties": { + "InstanceRole": { + "type": "string" + }, + "PlacementStrategy": { + "type": "string" + } + }, + "required": [ + "InstanceRole" + ], + "type": "object" + }, + "PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/ScalingTrigger" + } + }, + "required": [ + "Action", + "Trigger", + "Name" + ], + "type": "object" + }, + "ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BlockDurationMinutes": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "integer" + } + }, + "required": [ + "TimeoutDurationMinutes", + "TimeoutAction" + ], + "type": "object" + }, + "StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "integer" + }, + "SizeInGB": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EMR::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/Application" + }, + "type": "array", + "uniqueItems": true + }, + "AutoScalingRole": { + "type": "string" + }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AutoTerminationPolicy" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/BootstrapActionConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeIops": { + "type": "integer" + }, + "EbsRootVolumeSize": { + "type": "integer" + }, + "EbsRootVolumeThroughput": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Instances": { + "$ref": "#/definitions/JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/KerberosAttributes" + }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, + "LogUri": { + "type": "string" + }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/ManagedScalingPolicy" + }, + "MasterPublicDNS": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OSReleaseLabel": { + "type": "string" + }, + "PlacementGroupConfigs": { + "items": { + "$ref": "#/definitions/PlacementGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "StepConcurrencyLevel": { + "type": "integer" + }, + "Steps": { + "items": { + "$ref": "#/definitions/StepConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/MasterPublicDNS" + ], + "required": [ + "Instances", + "ServiceRole", + "JobFlowRole", + "Name" + ], + "typeName": "AWS::EMR::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-eventschemas-discoverer.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-eventschemas-discoverer.json deleted file mode 100644 index 791d433995..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-eventschemas-discoverer.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SourceArn" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EventSchemas::Discoverer", - "primaryIdentifier": [ - "/properties/DiscovererId" - ], - "properties": { - "CrossAccount": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DiscovererArn": { - "type": "string" - }, - "DiscovererId": { - "type": "string" - }, - "SourceArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/DiscovererId", - "/properties/DiscovererArn" - ], - "required": [ - "SourceArn" - ], - "typeName": "AWS::EventSchemas::Discoverer" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-fis-experimenttemplate.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-fis-experimenttemplate.json deleted file mode 100644 index 44471088cb..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-fis-experimenttemplate.json +++ /dev/null @@ -1,399 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Tags", - "/properties/ExperimentOptions/AccountTargeting" - ], - "definitions": { - "ActionId": { - "description": "The ID of the action.", - "maxLength": 64, - "type": "string" - }, - "ExperimentTemplateAction": { - "additionalProperties": false, - "description": "Specifies an action for the experiment template.", - "properties": { - "ActionId": { - "$ref": "#/definitions/ActionId" - }, - "Description": { - "$ref": "#/definitions/ExperimentTemplateActionItemDescription" - }, - "Parameters": { - "additionalProperties": false, - "description": "The parameters for the action, if applicable.", - "patternProperties": { - ".{1,64}": { - "$ref": "#/definitions/ExperimentTemplateActionItemParameter" - } - }, - "type": "object" - }, - "StartAfter": { - "$ref": "#/definitions/ExperimentTemplateActionItemStartAfterList" - }, - "Targets": { - "additionalProperties": false, - "description": "One or more targets for the action.", - "patternProperties": { - ".{1,64}": { - "$ref": "#/definitions/ExperimentTemplateActionItemTarget" - } - }, - "type": "object" - } - }, - "required": [ - "ActionId" - ], - "type": "object" - }, - "ExperimentTemplateActionItemDescription": { - "description": "A description for the action.", - "maxLength": 512, - "type": "string" - }, - "ExperimentTemplateActionItemParameter": { - "maxLength": 1024, - "type": "string" - }, - "ExperimentTemplateActionItemStartAfter": { - "maxLength": 64, - "type": "string" - }, - "ExperimentTemplateActionItemStartAfterList": { - "description": "The names of the actions that must be completed before the current action starts.", - "items": { - "$ref": "#/definitions/ExperimentTemplateActionItemStartAfter" - }, - "type": "array" - }, - "ExperimentTemplateActionItemTarget": { - "maxLength": 64, - "type": "string" - }, - "ExperimentTemplateActionMap": { - "additionalProperties": false, - "description": "The actions for the experiment.", - "patternProperties": { - "[\\S]{1,64}": { - "$ref": "#/definitions/ExperimentTemplateAction" - } - }, - "type": "object" - }, - "ExperimentTemplateDescription": { - "description": "A description for the experiment template.", - "maxLength": 512, - "type": "string" - }, - "ExperimentTemplateExperimentOptions": { - "additionalProperties": false, - "properties": { - "AccountTargeting": { - "description": "The account targeting setting for the experiment template.", - "enum": [ - "multi-account", - "single-account" - ], - "type": "string" - }, - "EmptyTargetResolutionMode": { - "description": "The target resolution failure mode for the experiment template.", - "enum": [ - "fail", - "skip" - ], - "type": "string" - } - }, - "type": "object" - }, - "ExperimentTemplateId": { - "type": "string" - }, - "ExperimentTemplateLogConfiguration": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsConfiguration": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - } - }, - "required": [ - "LogGroupArn" - ], - "type": "object" - }, - "LogSchemaVersion": { - "minimum": 1, - "type": "integer" - }, - "S3Configuration": { - "additionalProperties": false, - "properties": { - "BucketName": { - "maxLength": 63, - "minLength": 3, - "type": "string" - }, - "Prefix": { - "maxLength": 1024, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "BucketName" - ], - "type": "object" - } - }, - "required": [ - "LogSchemaVersion" - ], - "type": "object" - }, - "ExperimentTemplateStopCondition": { - "additionalProperties": false, - "properties": { - "Source": { - "$ref": "#/definitions/StopConditionSource" - }, - "Value": { - "$ref": "#/definitions/StopConditionValue" - } - }, - "required": [ - "Source" - ], - "type": "object" - }, - "ExperimentTemplateStopConditionList": { - "description": "One or more stop conditions.", - "items": { - "$ref": "#/definitions/ExperimentTemplateStopCondition" - }, - "type": "array" - }, - "ExperimentTemplateTarget": { - "additionalProperties": false, - "description": "Specifies a target for an experiment.", - "properties": { - "Filters": { - "$ref": "#/definitions/ExperimentTemplateTargetFilterList" - }, - "Parameters": { - "additionalProperties": false, - "patternProperties": { - ".{1,64}": { - "maxLength": 1024, - "type": "string" - } - }, - "type": "object" - }, - "ResourceArns": { - "$ref": "#/definitions/ResourceArnList" - }, - "ResourceTags": { - "additionalProperties": false, - "patternProperties": { - ".{1,128}": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - }, - "ResourceType": { - "$ref": "#/definitions/ResourceType" - }, - "SelectionMode": { - "$ref": "#/definitions/ExperimentTemplateTargetSelectionMode" - } - }, - "required": [ - "ResourceType", - "SelectionMode" - ], - "type": "object" - }, - "ExperimentTemplateTargetFilter": { - "additionalProperties": false, - "description": "Describes a filter used for the target resource input in an experiment template.", - "properties": { - "Path": { - "$ref": "#/definitions/ExperimentTemplateTargetFilterPath" - }, - "Values": { - "$ref": "#/definitions/ExperimentTemplateTargetFilterValues" - } - }, - "required": [ - "Path", - "Values" - ], - "type": "object" - }, - "ExperimentTemplateTargetFilterList": { - "items": { - "$ref": "#/definitions/ExperimentTemplateTargetFilter" - }, - "type": "array" - }, - "ExperimentTemplateTargetFilterPath": { - "description": "The attribute path for the filter.", - "maxLength": 256, - "type": "string" - }, - "ExperimentTemplateTargetFilterValue": { - "maxLength": 128, - "type": "string" - }, - "ExperimentTemplateTargetFilterValues": { - "description": "The attribute values for the filter.", - "items": { - "$ref": "#/definitions/ExperimentTemplateTargetFilterValue" - }, - "type": "array" - }, - "ExperimentTemplateTargetMap": { - "additionalProperties": false, - "description": "The targets for the experiment.", - "patternProperties": { - ".{1,64}": { - "$ref": "#/definitions/ExperimentTemplateTarget" - } - }, - "type": "object" - }, - "ExperimentTemplateTargetSelectionMode": { - "description": "Scopes the identified resources to a specific number of the resources at random, or a percentage of the resources.", - "maxLength": 64, - "type": "string" - }, - "ResourceArn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - }, - "ResourceArnList": { - "description": "The Amazon Resource Names (ARNs) of the target resources.", - "items": { - "$ref": "#/definitions/ResourceArn" - }, - "type": "array" - }, - "ResourceType": { - "description": "The AWS resource type. The resource type must be supported for the specified action.", - "maxLength": 64, - "type": "string" - }, - "RoleArn": { - "description": "The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.", - "maxLength": 1224, - "type": "string" - }, - "StopConditionSource": { - "maxLength": 64, - "type": "string" - }, - "StopConditionValue": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - } - }, - "description": "Resource schema for AWS::FIS::ExperimentTemplate", - "handlers": { - "create": { - "permissions": [ - "fis:CreateExperimentTemplate", - "fis:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "fis:DeleteExperimentTemplate" - ] - }, - "list": { - "permissions": [ - "fis:ListExperimentTemplates", - "fis:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "fis:GetExperimentTemplate", - "fis:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "fis:UpdateExperimentTemplate", - "fis:TagResource", - "fis:UntagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Actions": { - "$ref": "#/definitions/ExperimentTemplateActionMap" - }, - "Description": { - "$ref": "#/definitions/ExperimentTemplateDescription" - }, - "ExperimentOptions": { - "$ref": "#/definitions/ExperimentTemplateExperimentOptions" - }, - "Id": { - "$ref": "#/definitions/ExperimentTemplateId" - }, - "LogConfiguration": { - "$ref": "#/definitions/ExperimentTemplateLogConfiguration" - }, - "RoleArn": { - "$ref": "#/definitions/RoleArn" - }, - "StopConditions": { - "$ref": "#/definitions/ExperimentTemplateStopConditionList" - }, - "Tags": { - "additionalProperties": false, - "patternProperties": { - ".{1,128}": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - }, - "Targets": { - "$ref": "#/definitions/ExperimentTemplateTargetMap" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Description", - "StopConditions", - "Targets", - "RoleArn", - "Tags" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fis.git", - "typeName": "AWS::FIS::ExperimentTemplate" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-fis-targetaccountconfiguration.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-fis-targetaccountconfiguration.json deleted file mode 100644 index 152a59c5bb..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-fis-targetaccountconfiguration.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ExperimentTemplateId", - "/properties/AccountId" - ], - "definitions": { - "TargetAccountConfigurationDescription": { - "description": "The description of the target account.", - "maxLength": 512, - "type": "string" - }, - "TargetAccountId": { - "description": "The AWS account ID of the target account.", - "maxLength": 512, - "type": "string" - }, - "TargetAccountRoleArn": { - "description": "The Amazon Resource Name (ARN) of an IAM role for the target account.", - "maxLength": 1224, - "type": "string" - }, - "TargetExperimentTemplateId": { - "description": "The ID of the experiment template.", - "type": "string" - } - }, - "description": "Resource schema for AWS::FIS::TargetAccountConfiguration", - "handlers": { - "create": { - "permissions": [ - "fis:CreateTargetAccountConfiguration" - ] - }, - "delete": { - "permissions": [ - "fis:DeleteTargetAccountConfiguration" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ExperimentTemplateId": { - "$ref": "resource-schema.json#/properties/ExperimentTemplateId" - } - }, - "required": [ - "ExperimentTemplateId" - ] - }, - "permissions": [ - "fis:ListTargetAccountConfigurations" - ] - }, - "read": { - "permissions": [ - "fis:GetTargetAccountConfiguration" - ] - }, - "update": { - "permissions": [ - "fis:UpdateTargetAccountConfiguration" - ] - } - }, - "primaryIdentifier": [ - "/properties/ExperimentTemplateId", - "/properties/AccountId" - ], - "properties": { - "AccountId": { - "$ref": "#/definitions/TargetAccountId" - }, - "Description": { - "$ref": "#/definitions/TargetAccountConfigurationDescription" - }, - "ExperimentTemplateId": { - "$ref": "#/definitions/TargetExperimentTemplateId" - }, - "RoleArn": { - "$ref": "#/definitions/TargetAccountRoleArn" - } - }, - "required": [ - "ExperimentTemplateId", - "AccountId", - "RoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fis.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::FIS::TargetAccountConfiguration" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-fsx-datarepositoryassociation.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-fsx-datarepositoryassociation.json deleted file mode 100644 index 38eb5ca608..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-fsx-datarepositoryassociation.json +++ /dev/null @@ -1,212 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/FileSystemId", - "/properties/FileSystemPath", - "/properties/DataRepositoryPath", - "/properties/BatchImportMetaDataOnCreate" - ], - "definitions": { - "AutoExportPolicy": { - "additionalProperties": false, - "description": "Describes a data repository association's automatic export policy. The ``AutoExportPolicy`` defines the types of updated objects on the file system that will be automatically exported to the data repository. As you create, modify, or delete files, Amazon FSx for Lustre automatically exports the defined changes asynchronously once your application finishes modifying the file.\n The ``AutoExportPolicy`` is only supported on Amazon FSx for Lustre file systems with a data repository association.", - "properties": { - "Events": { - "$ref": "#/definitions/EventTypes", - "description": "The ``AutoExportPolicy`` can have the following event values:\n + ``NEW`` - New files and directories are automatically exported to the data repository as they are added to the file system.\n + ``CHANGED`` - Changes to files and directories on the file system are automatically exported to the data repository.\n + ``DELETED`` - Files and directories are automatically deleted on the data repository when they are deleted on the file system.\n \n You can define any combination of event types for your ``AutoExportPolicy``." - } - }, - "required": [ - "Events" - ], - "type": "object" - }, - "AutoImportPolicy": { - "additionalProperties": false, - "description": "Describes the data repository association's automatic import policy. The AutoImportPolicy defines how Amazon FSx keeps your file metadata and directory listings up to date by importing changes to your Amazon FSx for Lustre file system as you modify objects in a linked S3 bucket.\n The ``AutoImportPolicy`` is only supported on Amazon FSx for Lustre file systems with a data repository association.", - "properties": { - "Events": { - "$ref": "#/definitions/EventTypes", - "description": "The ``AutoImportPolicy`` can have the following event values:\n + ``NEW`` - Amazon FSx automatically imports metadata of files added to the linked S3 bucket that do not currently exist in the FSx file system.\n + ``CHANGED`` - Amazon FSx automatically updates file metadata and invalidates existing file content on the file system as files change in the data repository.\n + ``DELETED`` - Amazon FSx automatically deletes files on the file system as corresponding files are deleted in the data repository.\n \n You can define any combination of event types for your ``AutoImportPolicy``." - } - }, - "required": [ - "Events" - ], - "type": "object" - }, - "EventType": { - "enum": [ - "NEW", - "CHANGED", - "DELETED" - ], - "type": "string" - }, - "EventTypes": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/EventType" - }, - "maxItems": 3, - "type": "array", - "uniqueItems": true - }, - "S3": { - "additionalProperties": false, - "description": "The configuration for an Amazon S3 data repository linked to an Amazon FSx Lustre file system with a data repository association. The configuration defines which file events (new, changed, or deleted files or directories) are automatically imported from the linked data repository to the file system or automatically exported from the file system to the data repository.", - "properties": { - "AutoExportPolicy": { - "$ref": "#/definitions/AutoExportPolicy", - "description": "Describes a data repository association's automatic export policy. The ``AutoExportPolicy`` defines the types of updated objects on the file system that will be automatically exported to the data repository. As you create, modify, or delete files, Amazon FSx for Lustre automatically exports the defined changes asynchronously once your application finishes modifying the file.\n The ``AutoExportPolicy`` is only supported on Amazon FSx for Lustre file systems with a data repository association." - }, - "AutoImportPolicy": { - "$ref": "#/definitions/AutoImportPolicy", - "description": "Describes the data repository association's automatic import policy. The AutoImportPolicy defines how Amazon FSx keeps your file metadata and directory listings up to date by importing changes to your Amazon FSx for Lustre file system as you modify objects in a linked S3 bucket.\n The ``AutoImportPolicy`` is only supported on Amazon FSx for Lustre file systems with a data repository association." - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "description": "Specifies a key-value pair for a resource tag.", - "properties": { - "Key": { - "description": "A value that specifies the ``TagKey``, the name of the tag. Tag keys must be unique for the resource to which they are attached.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "A value that specifies the ``TagValue``, the value assigned to the corresponding tag key. Tag values can be null and don't have to be unique in a tag set. For example, you can have a key-value pair in a tag set of ``finances : April`` and also of ``payroll : April``.", - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "Creates an Amazon FSx for Lustre data repository association (DRA). A data repository association is a link between a directory on the file system and an Amazon S3 bucket or prefix. You can have a maximum of 8 data repository associations on a file system. Data repository associations are supported on all FSx for Lustre 2.12 and newer file systems, excluding ``scratch_1`` deployment type. \n Each data repository association must have a unique Amazon FSx file system directory and a unique S3 bucket or prefix associated with it. You can configure a data repository association for automatic import only, for automatic export only, or for both. To learn more about linking a data repository to your file system, see [Linking your file system to an S3 bucket](https://docs.aws.amazon.com/fsx/latest/LustreGuide/create-dra-linked-data-repo.html).", - "handlers": { - "create": { - "permissions": [ - "fsx:CreateDataRepositoryAssociation", - "fsx:DescribeDataRepositoryAssociations", - "fsx:TagResource", - "s3:ListBucket", - "s3:GetBucketPolicy", - "s3:PutBucketPolicy", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy" - ], - "timeoutInMinutes": 120 - }, - "delete": { - "permissions": [ - "fsx:DescribeDataRepositoryAssociations", - "fsx:DeleteDataRepositoryAssociation" - ], - "timeoutInMinutes": 180 - }, - "list": { - "permissions": [ - "fsx:DescribeDataRepositoryAssociations" - ] - }, - "read": { - "permissions": [ - "fsx:DescribeDataRepositoryAssociations" - ] - }, - "update": { - "permissions": [ - "fsx:DescribeDataRepositoryAssociations", - "fsx:UpdateDataRepositoryAssociation", - "fsx:TagResource", - "fsx:UntagResource", - "s3:ListBucket", - "s3:GetBucketPolicy", - "s3:PutBucketPolicy", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy" - ], - "timeoutInMinutes": 180 - } - }, - "primaryIdentifier": [ - "/properties/AssociationId" - ], - "properties": { - "AssociationId": { - "description": "", - "type": "string" - }, - "BatchImportMetaDataOnCreate": { - "description": "A boolean flag indicating whether an import data repository task to import metadata should run after the data repository association is created. The task runs if this flag is set to ``true``.", - "type": "boolean" - }, - "DataRepositoryPath": { - "description": "The path to the Amazon S3 data repository that will be linked to the file system. The path can be an S3 bucket or prefix in the format ``s3://myBucket/myPrefix/``. This path specifies where in the S3 data repository files will be imported from or exported to.", - "type": "string" - }, - "FileSystemId": { - "description": "The ID of the file system on which the data repository association is configured.", - "type": "string" - }, - "FileSystemPath": { - "description": "A path on the Amazon FSx for Lustre file system that points to a high-level directory (such as ``/ns1/``) or subdirectory (such as ``/ns1/subdir/``) that will be mapped 1-1 with ``DataRepositoryPath``. The leading forward slash in the name is required. Two data repository associations cannot have overlapping file system paths. For example, if a data repository is associated with file system path ``/ns1/``, then you cannot link another data repository with file system path ``/ns1/ns2``.\n This path specifies where in your file system files will be exported from or imported to. This file system directory can be linked to only one Amazon S3 bucket, and no other S3 bucket can be linked to the directory.\n If you specify only a forward slash (``/``) as the file system path, you can link only one data repository to the file system. You can only specify \"/\" as the file system path for the first data repository associated with a file system.", - "type": "string" - }, - "ImportedFileChunkSize": { - "description": "For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system or cache.\n The default chunk size is 1,024 MiB (1 GiB) and can go as high as 512,000 MiB (500 GiB). Amazon S3 objects have a maximum size of 5 TB.", - "type": "integer" - }, - "ResourceARN": { - "description": "", - "type": "string" - }, - "S3": { - "$ref": "#/definitions/S3", - "description": "The configuration for an Amazon S3 data repository linked to an Amazon FSx Lustre file system with a data repository association. The configuration defines which file events (new, changed, or deleted files or directories) are automatically imported from the linked data repository to the file system or automatically exported from the file system to the data repository." - }, - "Tags": { - "description": "An array of key-value pairs to apply to this resource.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/AssociationId", - "/properties/ResourceARN" - ], - "required": [ - "FileSystemId", - "FileSystemPath", - "DataRepositoryPath" - ], - "resourceLink": { - "mappings": { - "AssociationId": "/AssociationId", - "FileSystemId": "/FileSystemId" - }, - "templateUri": "/fsx/home?region=${awsRegion}#data-repository-associations-details/${FileSystemId}/${AssociationId}" - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fsx.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::FSx::DataRepositoryAssociation" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-image.json new file mode 100644 index 0000000000..223d64e03e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-image.json @@ -0,0 +1,263 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ImageRecipeArn", + "/properties/ContainerRecipeArn", + "/properties/InfrastructureConfigurationArn", + "/properties/Workflows", + "/properties/DistributionConfigurationArn", + "/properties/ImageTestsConfiguration", + "/properties/ImageScanningConfiguration", + "/properties/EnhancedImageMetadataEnabled", + "/properties/Tags" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Contains settings for Image Builder image resource and container image scans.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "The image tests configuration used when creating this image.", + "properties": { + "ImageTestsEnabled": { + "description": "ImageTestsEnabled", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "TimeoutMinutes", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "WorkflowConfiguration": { + "additionalProperties": false, + "description": "The workflow configuration of the image", + "properties": { + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "enum": [ + "CONTINUE", + "ABORT" + ], + "type": "string" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string" + }, + "Parameters": { + "description": "The parameters associated with the workflow", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "type": "array" + }, + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowParameter": { + "additionalProperties": false, + "description": "A parameter associated with the workflow", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowParameterValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", + "type": "string" + } + }, + "description": "Resource schema for AWS::ImageBuilder::Image", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:GetImage", + "imagebuilder:CreateImage", + "imagebuilder:TagResource", + "inspector2:BatchGetAccountStatus" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "imagebuilder:GetImage", + "imagebuilder:DeleteImage", + "imagebuilder:UnTagResource", + "imagebuilder:CancelImageCreation" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListImages" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImage" + ] + } + }, + "oneOf": [ + { + "required": [ + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string" + }, + "ImageId": { + "description": "The AMI ID of the EC2 AMI in current region.", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration used when creating this image." + }, + "ImageUri": { + "description": "URI for containers created in current Region with default ECR image tag", + "type": "string" + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", + "type": "string" + }, + "Name": { + "description": "The name of the image.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the image.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Name", + "/properties/ImageId", + "/properties/ImageUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Image" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-imagepipeline.json new file mode 100644 index 0000000000..3cf9b2a4a9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-imagepipeline.json @@ -0,0 +1,277 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "Image tests configuration.", + "properties": { + "ImageTestsEnabled": { + "description": "Defines if tests should be executed when building this image.", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "The maximum time in minutes that tests are permitted to run.", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "description": "The schedule of the image pipeline.", + "properties": { + "PipelineExecutionStartCondition": { + "description": "The condition configures when the pipeline should trigger a new image build.", + "enum": [ + "EXPRESSION_MATCH_ONLY", + "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + ], + "type": "string" + }, + "ScheduleExpression": { + "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowConfiguration": { + "additionalProperties": false, + "description": "The workflow configuration of the image", + "properties": { + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "enum": [ + "CONTINUE", + "ABORT" + ], + "type": "string" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string" + }, + "Parameters": { + "description": "The parameters associated with the workflow", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "type": "array" + }, + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowParameter": { + "additionalProperties": false, + "description": "A parameter associated with the workflow", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowParameterValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", + "type": "string" + } + }, + "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:CreateImagePipeline", + "imagebuilder:GetWorkflow", + "inspector2:BatchGetAccountStatus" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:UnTagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:DeleteImagePipeline" + ] + }, + "list": { + "permissions": [ + "imagebuilder:ListImagePipelines" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImagePipeline" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "imagebuilder:GetImagePipeline", + "imagebuilder:UpdateImagePipeline", + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Name", + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "Name", + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image pipeline.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "Description": { + "description": "The description of the image pipeline.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration of the image pipeline." + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", + "type": "string" + }, + "Name": { + "description": "The name of the image pipeline.", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule", + "description": "The schedule of the image pipeline." + }, + "Status": { + "description": "The status of the image pipeline.", + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags of this image pipeline.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::ImagePipeline" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-workflow.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-workflow.json new file mode 100644 index 0000000000..5c25c2361b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-workflow.json @@ -0,0 +1,145 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Version", + "/properties/ChangeDescription", + "/properties/Description", + "/properties/Data", + "/properties/Uri", + "/properties/Type", + "/properties/KmsKeyId", + "/properties/Tags" + ], + "description": "Resource schema for AWS::ImageBuilder::Workflow", + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "kms:GenerateDataKey*", + "kms:Encrypt", + "kms:Decrypt", + "s3:GetObject", + "s3:HeadBucket", + "s3:GetBucketLocation", + "imagebuilder:TagResource", + "imagebuilder:GetWorkflow", + "imagebuilder:CreateWorkflow" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:GetWorkflow", + "imagebuilder:UnTagResource", + "imagebuilder:DeleteWorkflow" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListWorkflows" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Data" + ] + }, + { + "required": [ + "Uri" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the workflow.", + "type": "string" + }, + "ChangeDescription": { + "description": "The change description of the workflow.", + "type": "string" + }, + "Data": { + "description": "The data of the workflow.", + "maxLength": 16000, + "minLength": 1, + "type": "string" + }, + "Description": { + "description": "The description of the workflow.", + "type": "string" + }, + "KmsKeyId": { + "description": "The KMS key identifier used to encrypt the workflow.", + "type": "string" + }, + "Name": { + "description": "The name of the workflow.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the workflow.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "description": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.", + "enum": [ + "BUILD", + "TEST", + "DISTRIBUTION" + ], + "type": "string" + }, + "Uri": { + "description": "The uri of the workflow.", + "type": "string" + }, + "Version": { + "description": "The version of the workflow.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "Name", + "Type", + "Version" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Workflow", + "writeOnlyProperties": [ + "/properties/Data", + "/properties/Uri" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-lambda-function.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-lambda-function.json deleted file mode 100644 index eef62c32fd..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-lambda-function.json +++ /dev/null @@ -1,619 +0,0 @@ -{ - "additionalProperties": false, - "cfnSchema": [ - "aws_lambda_function/zipfile_runtime_exists", - "aws_lambda_function/zipfile_runtime_enum" - ], - "createOnlyProperties": [ - "/properties/FunctionName" - ], - "definitions": { - "Code": { - "additionalProperties": false, - "properties": { - "ImageUri": { - "description": "ImageUri.", - "type": "string" - }, - "S3Bucket": { - "description": "An Amazon S3 bucket in the same AWS Region as your function. The bucket can be in a different AWS account.", - "maxLength": 63, - "minLength": 3, - "pattern": "^[0-9A-Za-z\\.\\-_]*(?The key or keys of the key-value pairs for the resource tag or tags assigned to the\n resource.

", - "properties": { - "Key": { - "description": "

Tag key.

", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "

Tag value.

", - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "A replication configuration that you later provide to configure and start a AWS DMS Serverless replication", - "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:RemoveTagsToResource", - "dms:ListTagsForResource", - "iam:CreateServiceLinkedRole", - "iam:AttachRolePolicy", - "iam:PutRolePolicy", - "iam:UpdateRoleDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicationConfigArn" - ], - "properties": { - "ComputeConfig": { - "$ref": "#/definitions/ComputeConfig" - }, - "ReplicationConfigArn": { - "description": "The Amazon Resource Name (ARN) of the Replication Config", - "type": "string" - }, - "ReplicationConfigIdentifier": { - "description": "A unique identifier of replication configuration", - "type": "string" - }, - "ReplicationSettings": { - "description": "JSON settings for Servereless replications that are provisioned using this replication configuration", - "type": "object" - }, - "ReplicationType": { - "description": "The type of AWS DMS Serverless replication to provision using this replication configuration", - "enum": [ - "full-load", - "full-load-and-cdc", - "cdc" - ], - "type": "string" - }, - "ResourceIdentifier": { - "description": "A unique value or name that you get set for a given resource that can be used to construct an Amazon Resource Name (ARN) for that resource", - "type": "string" - }, - "SourceEndpointArn": { - "description": "The Amazon Resource Name (ARN) of the source endpoint for this AWS DMS Serverless replication configuration", - "type": "string" - }, - "SupplementalSettings": { - "description": "JSON settings for specifying supplemental data", - "type": "object" - }, - "TableMappings": { - "description": "JSON table mappings for AWS DMS Serverless replications that are provisioned using this replication configuration", - "type": "object" - }, - "Tags": { - "description": "

Contains a map of the key-value pairs for the resource tag or tags assigned to the dataset.

", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 1, - "type": "array" - }, - "TargetEndpointArn": { - "description": "The Amazon Resource Name (ARN) of the target endpoint for this AWS DMS Serverless replication configuration", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/ReplicationConfigArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-dms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::DMS::ReplicationConfig" -} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-emr-cluster.json new file mode 100644 index 0000000000..7ce37fccb6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-emr-cluster.json @@ -0,0 +1,858 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Steps", + "/properties/EbsRootVolumeSize", + "/properties/SecurityConfiguration", + "/properties/ScaleDownBehavior", + "/properties/Configurations", + "/properties/ReleaseLabel", + "/properties/BootstrapActions", + "/properties/EbsRootVolumeIops", + "/properties/KerberosAttributes", + "/properties/ServiceRole", + "/properties/LogEncryptionKmsKeyId", + "/properties/Name", + "/properties/EbsRootVolumeThroughput", + "/properties/JobFlowRole", + "/properties/AdditionalInfo", + "/properties/LogUri", + "/properties/CustomAmiId", + "/properties/PlacementGroupConfigs", + "/properties/OSReleaseLabel", + "/properties/AutoScalingRole", + "/properties/Applications" + ], + "definitions": { + "Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ScalingRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/ScriptBootstrapActionConfig" + } + }, + "required": [ + "ScriptBootstrapAction", + "Name" + ], + "type": "object" + }, + "CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "EvaluationPeriods": { + "type": "integer" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "integer" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "ComparisonOperator", + "Period", + "Threshold" + ], + "type": "object" + }, + "ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "integer" + }, + "MaximumCoreCapacityUnits": { + "type": "integer" + }, + "MaximumOnDemandCapacityUnits": { + "type": "integer" + }, + "MinimumCapacityUnits": { + "type": "integer" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "UnitType", + "MaximumCapacityUnits", + "MinimumCapacityUnits" + ], + "type": "object" + }, + "Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "integer" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/EbsBlockDeviceConfig" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/KeyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/InstanceTypeConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchSpecifications": { + "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "integer" + }, + "TargetSpotCapacity": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/OnDemandProvisioningSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/SpotProvisioningSpecification" + } + }, + "type": "object" + }, + "InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceType": { + "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", + "type": "string" + }, + "WeightedCapacity": { + "type": "integer" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/ComputeLimits" + } + }, + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "PlacementGroupConfig": { + "additionalProperties": false, + "properties": { + "InstanceRole": { + "type": "string" + }, + "PlacementStrategy": { + "type": "string" + } + }, + "required": [ + "InstanceRole" + ], + "type": "object" + }, + "PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/ScalingTrigger" + } + }, + "required": [ + "Action", + "Trigger", + "Name" + ], + "type": "object" + }, + "ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BlockDurationMinutes": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "integer" + } + }, + "required": [ + "TimeoutDurationMinutes", + "TimeoutAction" + ], + "type": "object" + }, + "StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "integer" + }, + "SizeInGB": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EMR::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/Application" + }, + "type": "array", + "uniqueItems": true + }, + "AutoScalingRole": { + "type": "string" + }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AutoTerminationPolicy" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/BootstrapActionConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeIops": { + "type": "integer" + }, + "EbsRootVolumeSize": { + "type": "integer" + }, + "EbsRootVolumeThroughput": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Instances": { + "$ref": "#/definitions/JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/KerberosAttributes" + }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, + "LogUri": { + "type": "string" + }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/ManagedScalingPolicy" + }, + "MasterPublicDNS": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OSReleaseLabel": { + "type": "string" + }, + "PlacementGroupConfigs": { + "items": { + "$ref": "#/definitions/PlacementGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "StepConcurrencyLevel": { + "type": "integer" + }, + "Steps": { + "items": { + "$ref": "#/definitions/StepConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/MasterPublicDNS" + ], + "required": [ + "Instances", + "ServiceRole", + "JobFlowRole", + "Name" + ], + "typeName": "AWS::EMR::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-eventschemas-discoverer.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-eventschemas-discoverer.json deleted file mode 100644 index 791d433995..0000000000 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-eventschemas-discoverer.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SourceArn" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EventSchemas::Discoverer", - "primaryIdentifier": [ - "/properties/DiscovererId" - ], - "properties": { - "CrossAccount": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DiscovererArn": { - "type": "string" - }, - "DiscovererId": { - "type": "string" - }, - "SourceArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/DiscovererId", - "/properties/DiscovererArn" - ], - "required": [ - "SourceArn" - ], - "typeName": "AWS::EventSchemas::Discoverer" -} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-imagebuilder-image.json new file mode 100644 index 0000000000..5582329923 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-imagebuilder-image.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ImageRecipeArn", + "/properties/ContainerRecipeArn", + "/properties/InfrastructureConfigurationArn", + "/properties/DistributionConfigurationArn", + "/properties/ImageTestsConfiguration", + "/properties/ImageScanningConfiguration", + "/properties/EnhancedImageMetadataEnabled", + "/properties/Tags" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Contains settings for Image Builder image resource and container image scans.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "The image tests configuration used when creating this image.", + "properties": { + "ImageTestsEnabled": { + "description": "ImageTestsEnabled", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "TimeoutMinutes", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::ImageBuilder::Image", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:GetImage", + "imagebuilder:CreateImage", + "imagebuilder:TagResource", + "inspector2:BatchGetAccountStatus" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "imagebuilder:GetImage", + "imagebuilder:DeleteImage", + "imagebuilder:UnTagResource", + "imagebuilder:CancelImageCreation" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListImages" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImage" + ] + } + }, + "oneOf": [ + { + "required": [ + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ImageId": { + "description": "The AMI ID of the EC2 AMI in current region.", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration used when creating this image." + }, + "ImageUri": { + "description": "URI for containers created in current Region with default ECR image tag", + "type": "string" + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", + "type": "string" + }, + "Name": { + "description": "The name of the image.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the image.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Name", + "/properties/ImageId", + "/properties/ImageUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Image" +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-imagebuilder-imagepipeline.json new file mode 100644 index 0000000000..5b70e0ff38 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-imagebuilder-imagepipeline.json @@ -0,0 +1,213 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "Image tests configuration.", + "properties": { + "ImageTestsEnabled": { + "description": "Defines if tests should be executed when building this image.", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "The maximum time in minutes that tests are permitted to run.", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "description": "The schedule of the image pipeline.", + "properties": { + "PipelineExecutionStartCondition": { + "description": "The condition configures when the pipeline should trigger a new image build.", + "enum": [ + "EXPRESSION_MATCH_ONLY", + "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + ], + "type": "string" + }, + "ScheduleExpression": { + "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:CreateImagePipeline", + "imagebuilder:GetWorkflow", + "inspector2:BatchGetAccountStatus" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:UnTagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:DeleteImagePipeline" + ] + }, + "list": { + "permissions": [ + "imagebuilder:ListImagePipelines" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImagePipeline" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "imagebuilder:GetImagePipeline", + "imagebuilder:UpdateImagePipeline", + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Name", + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "Name", + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image pipeline.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "Description": { + "description": "The description of the image pipeline.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration of the image pipeline." + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", + "type": "string" + }, + "Name": { + "description": "The name of the image pipeline.", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule", + "description": "The schedule of the image pipeline." + }, + "Status": { + "description": "The status of the image pipeline.", + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags of this image pipeline.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::ImagePipeline" +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-route53resolver-resolverconfig.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-route53resolver-resolverconfig.json deleted file mode 100644 index 33f4996fbd..0000000000 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-route53resolver-resolverconfig.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ResourceId", - "/properties/AutodefinedReverseFlag" - ], - "description": "Resource schema for AWS::Route53Resolver::ResolverConfig.", - "handlers": { - "create": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "delete": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "list": { - "permissions": [ - "route53resolver:ListResolverConfigs" - ] - }, - "read": { - "permissions": [ - "route53resolver:GetResolverConfig" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AutodefinedReverse": { - "description": "ResolverAutodefinedReverseStatus, possible values are ENABLING, ENABLED, DISABLING AND DISABLED.", - "enum": [ - "ENABLING", - "ENABLED", - "DISABLING", - "DISABLED" - ], - "type": "string" - }, - "AutodefinedReverseFlag": { - "description": "Represents the desired status of AutodefinedReverse. The only supported value on creation is DISABLE. Deletion of this resource will return AutodefinedReverse to its default value (ENABLED).", - "enum": [ - "DISABLE" - ], - "type": "string" - }, - "Id": { - "description": "Id", - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "OwnerId": { - "description": "AccountId", - "maxLength": 32, - "minLength": 12, - "type": "string" - }, - "ResourceId": { - "description": "ResourceId", - "maxLength": 64, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/OwnerId", - "/properties/Id", - "/properties/AutodefinedReverse" - ], - "required": [ - "ResourceId", - "AutodefinedReverseFlag" - ], - "taggable": false, - "typeName": "AWS::Route53Resolver::ResolverConfig" -} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-app.json new file mode 100644 index 0000000000..da6e3f4330 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-app.json @@ -0,0 +1,216 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/Tags", + "/properties/ResourceSpec" + ], + "definitions": { + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "description": "The instance type that the image version runs on.", + "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" + ], + "type": "string" + }, + "SageMakerImageArn": { + "description": "The ARN of the SageMaker image that the image version belongs to.", + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "description": "The ARN of the image version created on the instance.", + "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" + } + }, + "description": "Resource Type definition for AWS::SageMaker::App", + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:DescribeApp" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListApps" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeApp" + ] + } + }, + "primaryIdentifier": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName" + ], + "properties": { + "AppArn": { + "description": "The Amazon Resource Name (ARN) of the app.", + "maxLength": 256, + "minLength": 1, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app/.*", + "type": "string" + }, + "AppName": { + "description": "The name of the app.", + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "AppType": { + "description": "The type of app.", + "enum": [ + "JupyterServer", + "KernelGateway", + "RStudioServerPro", + "RSessionGateway", + "Canvas" + ], + "type": "string" + }, + "DomainId": { + "description": "The domain ID.", + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "ResourceSpec": { + "$ref": "#/definitions/ResourceSpec", + "description": "The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance." + }, + "Tags": { + "description": "A list of tags to apply to the app.", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileName": { + "description": "The user profile name.", + "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/sa_east_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-domain.json new file mode 100644 index 0000000000..1948e2768f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-domain.json @@ -0,0 +1,575 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AppNetworkAccessType", + "/properties/AuthMode", + "/properties/DomainName", + "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", + "/properties/KmsKeyId", + "/properties/SubnetIds", + "/properties/VpcId", + "/properties/Tags" + ], + "definitions": { + "CustomImage": { + "additionalProperties": false, + "description": "A custom SageMaker image.", + "properties": { + "AppImageConfigName": { + "description": "The Name of the AppImageConfig.", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "description": "The name of the CustomImage. Must be unique to your account.", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "description": "The version number of the CustomImage.", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "DefaultSpaceSettings": { + "additionalProperties": false, + "description": "A collection of settings that apply to spaces of Amazon SageMaker Studio. These settings are specified when the Create/Update Domain API is called.", + "properties": { + "ExecutionRole": { + "description": "The execution role for the space.", + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings", + "description": "The Jupyter server's app settings." + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings", + "description": "The kernel gateway app settings." + }, + "SecurityGroups": { + "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + }, + "DomainSettings": { + "additionalProperties": false, + "description": "A collection of Domain settings.", + "properties": { + "RStudioServerProDomainSettings": { + "$ref": "#/definitions/RStudioServerProDomainSettings" + }, + "SecurityGroupIds": { + "description": "The security groups for the Amazon Virtual Private Cloud that the Domain uses for communication between Domain-level apps and user apps.", + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "description": "The JupyterServer app settings.", + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "description": "The kernel gateway app settings.", + "properties": { + "CustomImages": { + "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec", + "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app." + } + }, + "type": "object" + }, + "RSessionAppSettings": { + "additionalProperties": false, + "description": "A collection of settings that apply to an RSessionGateway app.", + "properties": { + "CustomImages": { + "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "description": "A collection of settings that configure user interaction with the RStudioServerPro app.", + "properties": { + "AccessStatus": { + "description": "Indicates whether the current user has access to the RStudioServerPro app.", + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "description": "The level of permissions that the user has within the RStudioServerPro app. This value defaults to User. The Admin value allows the user access to the RStudio Administrative Dashboard.", + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "RStudioServerProDomainSettings": { + "additionalProperties": false, + "description": "A collection of settings that update the current configuration for the RStudioServerPro Domain-level app.", + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "DomainExecutionRoleArn": { + "description": "The ARN of the execution role for the RStudioServerPro Domain-level app.", + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "RStudioConnectUrl": { + "description": "A URL pointing to an RStudio Connect server.", + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + }, + "RStudioPackageManagerUrl": { + "description": "A URL pointing to an RStudio Package Manager server.", + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + } + }, + "required": [ + "DomainExecutionRoleArn" + ], + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "description": "The instance type that the image version runs on.", + "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" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "description": "The Amazon Resource Name (ARN) of the SageMaker image that the image version belongs to.", + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "description": "The Amazon Resource Name (ARN) of the image version created on the instance.", + "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, + "description": "Specifies options when sharing an Amazon SageMaker Studio notebook. These settings are specified as part of DefaultUserSettings when the CreateDomain API is called, and as part of UserSettings when the CreateUserProfile API is called.", + "properties": { + "NotebookOutputOption": { + "description": "Whether to include the notebook cell output when sharing the notebook. The default is Disabled.", + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "description": "When NotebookOutputOption is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.", + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "description": "When NotebookOutputOption is Allowed, the Amazon S3 bucket used to store the shared notebook snapshots.", + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "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" + }, + "UserSettings": { + "additionalProperties": false, + "description": "A collection of settings that apply to users of Amazon SageMaker Studio. These settings are specified when the CreateUserProfile API is called, and as DefaultUserSettings when the CreateDomain API is called.", + "properties": { + "ExecutionRole": { + "description": "The execution role for the user.", + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings", + "description": "The Jupyter server's app settings." + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings", + "description": "The kernel gateway app settings." + }, + "RSessionAppSettings": { + "$ref": "#/definitions/RSessionAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings", + "description": "The sharing settings." + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::SageMaker::Domain", + "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": { + "description": "Specifies the VPC used for non-EFS traffic. The default value is PublicInternetOnly.", + "enum": [ + "PublicInternetOnly", + "VpcOnly" + ], + "type": "string" + }, + "AppSecurityGroupManagement": { + "description": "The entity that creates and manages the required security groups for inter-app communication in VPCOnly mode. Required when CreateDomain.AppNetworkAccessType is VPCOnly and DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn is provided.", + "enum": [ + "Service", + "Customer" + ], + "type": "string" + }, + "AuthMode": { + "description": "The mode of authentication that members use to access the domain.", + "enum": [ + "SSO", + "IAM" + ], + "type": "string" + }, + "DefaultSpaceSettings": { + "$ref": "#/definitions/DefaultSpaceSettings", + "description": "The default space settings." + }, + "DefaultUserSettings": { + "$ref": "#/definitions/UserSettings", + "description": "The default user settings." + }, + "DomainArn": { + "description": "The Amazon Resource Name (ARN) of the created domain.", + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", + "type": "string" + }, + "DomainId": { + "description": "The domain name.", + "maxLength": 63, + "pattern": "^d-(-*[a-z0-9])+", + "type": "string" + }, + "DomainName": { + "description": "A name for the domain.", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "DomainSettings": { + "$ref": "#/definitions/DomainSettings" + }, + "HomeEfsFileSystemId": { + "description": "The ID of the Amazon Elastic File System (EFS) managed by this Domain.", + "maxLength": 32, + "type": "string" + }, + "KmsKeyId": { + "description": "SageMaker uses AWS KMS to encrypt the EFS volume attached to the domain with an AWS managed customer master key (CMK) by default.", + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "SecurityGroupIdForDomainBoundary": { + "description": "The ID of the security group that authorizes traffic between the RSessionGateway apps and the RStudioServerPro app.", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "SingleSignOnManagedApplicationInstanceId": { + "description": "The SSO managed application instance ID.", + "maxLength": 256, + "type": "string" + }, + "SubnetIds": { + "description": "The VPC subnets that Studio uses for communication.", + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "description": "A list of tags to apply to the user profile.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "description": "The URL to the created domain.", + "maxLength": 1024, + "type": "string" + }, + "VpcId": { + "description": "The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/DomainArn", + "/properties/Url", + "/properties/DomainId", + "/properties/HomeEfsFileSystemId", + "/properties/SecurityGroupIdForDomainBoundary", + "/properties/SingleSignOnManagedApplicationInstanceId" + ], + "required": [ + "AuthMode", + "DefaultUserSettings", + "DomainName", + "SubnetIds", + "VpcId" + ], + "typeName": "AWS::SageMaker::Domain", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..8d20becfab --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-userprofile.json @@ -0,0 +1,368 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/SingleSignOnUserIdentifier", + "/properties/SingleSignOnUserValue", + "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", + "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", + "/properties/Tags" + ], + "definitions": { + "CustomImage": { + "additionalProperties": false, + "description": "A custom SageMaker image.", + "properties": { + "AppImageConfigName": { + "description": "The Name of the AppImageConfig.", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "description": "The name of the CustomImage. Must be unique to your account.", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "description": "The version number of the CustomImage.", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "description": "The JupyterServer app settings.", + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "description": "The kernel gateway app settings.", + "properties": { + "CustomImages": { + "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec", + "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app." + } + }, + "type": "object" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "description": "A collection of settings that configure user interaction with the RStudioServerPro app.", + "properties": { + "AccessStatus": { + "description": "Indicates whether the current user has access to the RStudioServerPro app.", + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "description": "The level of permissions that the user has within the RStudioServerPro app. This value defaults to User. The Admin value allows the user access to the RStudio Administrative Dashboard.", + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "description": "The instance type that the image version runs on.", + "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" + ], + "type": "string" + }, + "SageMakerImageArn": { + "description": "The ARN of the SageMaker image that the image version belongs to.", + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "description": "The ARN of the image version created on the instance.", + "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, + "description": "Specifies options when sharing an Amazon SageMaker Studio notebook. These settings are specified as part of DefaultUserSettings when the CreateDomain API is called, and as part of UserSettings when the CreateUserProfile API is called.", + "properties": { + "NotebookOutputOption": { + "description": "Whether to include the notebook cell output when sharing the notebook. The default is Disabled.", + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "description": "When NotebookOutputOption is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.", + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "description": "When NotebookOutputOption is Allowed, the Amazon S3 bucket used to store the shared notebook snapshots.", + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "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" + }, + "UserSettings": { + "additionalProperties": false, + "description": "A collection of settings that apply to users of Amazon SageMaker Studio. These settings are specified when the CreateUserProfile API is called, and as DefaultUserSettings when the CreateDomain API is called.", + "properties": { + "ExecutionRole": { + "description": "The user profile Amazon Resource Name (ARN).", + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings", + "description": "The Jupyter server's app settings." + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings", + "description": "The kernel gateway app settings." + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings", + "description": "The sharing settings." + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::SageMaker::UserProfile", + "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": { + "description": "The ID of the associated Domain.", + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SingleSignOnUserIdentifier": { + "description": "A specifier for the type of value specified in SingleSignOnUserValue. Currently, the only supported value is \"UserName\". If the Domain's AuthMode is SSO, this field is required. If the Domain's AuthMode is not SSO, this field cannot be specified.", + "pattern": "UserName", + "type": "string" + }, + "SingleSignOnUserValue": { + "description": "The username of the associated AWS Single Sign-On User for this UserProfile. If the Domain's AuthMode is SSO, this field is required, and must match a valid username of a user in your directory. If the Domain's AuthMode is not SSO, this field cannot be specified.", + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Tags": { + "description": "A list of tags to apply to the user profile.", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileArn": { + "description": "The user profile Amazon Resource Name (ARN).", + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", + "type": "string" + }, + "UserProfileName": { + "description": "A name for the UserProfile.", + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "UserSettings": { + "$ref": "#/definitions/UserSettings", + "description": "A collection of settings.", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/UserProfileArn" + ], + "required": [ + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::UserProfile", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_east_1/__init__.py b/src/cfnlint/data/schemas/providers/us_east_1/__init__.py index 0bf20ecc33..4e98276f4b 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_east_1/__init__.py @@ -66,6 +66,7 @@ "AWS::Logs::ResourcePolicy", "AWS::Lex::BotVersion", "AWS::ServiceCatalog::LaunchNotificationConstraint", + "AWS::DMS::InstanceProfile", "AWS::OpenSearchServerless::VpcEndpoint", "AWS::QuickSight::DataSource", "AWS::IoT::CACertificate", @@ -207,6 +208,7 @@ "AWS::CustomerProfiles::Integration", "AWS::WorkSpaces::ConnectionAlias", "AWS::WAFRegional::SizeConstraintSet", + "AWS::EventSchemas::Discoverer", "AWS::NetworkManager::ConnectPeer", "AWS::ElastiCache::UserGroup", "AWS::IoT::ThingGroup", @@ -266,6 +268,7 @@ "AWS::SSM::Document", "AWS::IAM::Role", "AWS::Events::ApiDestination", + "AWS::WorkSpacesThinClient::Environment", "AWS::DMS::Endpoint", "AWS::IoTSiteWise::Project", "AWS::MediaLive::Multiplexprogram", @@ -305,6 +308,7 @@ "AWS::GuardDuty::Member", "AWS::GroundStation::MissionProfile", "AWS::CloudFormation::CustomResource", + "AWS::FIS::TargetAccountConfiguration", "AWS::RefactorSpaces::Route", "AWS::NimbleStudio::LaunchProfile", "AWS::KinesisAnalytics::ApplicationOutput", @@ -364,6 +368,7 @@ "AWS::AppStream::AppBlock", "AWS::IoTWireless::ServiceProfile", "AWS::Shield::Protection", + "AWS::B2BI::Transformer", "AWS::SES::VdmAttributes", "AWS::IdentityStore::GroupMembership", "AWS::AppSync::FunctionConfiguration", @@ -551,6 +556,7 @@ "AWS::Kinesis::Stream", "AWS::Greengrass::CoreDefinition", "AWS::Backup::ReportPlan", + "AWS::B2BI::Capability", "AWS::PinpointEmail::DedicatedIpPool", "AWS::Batch::JobDefinition", "AWS::IAM::SAMLProvider", @@ -622,6 +628,7 @@ "AWS::ServiceCatalog::AcceptedPortfolioShare", "AWS::Route53Resolver::FirewallRuleGroupAssociation", "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", "AWS::EC2::Subnet", "AWS::CloudTrail::ResourcePolicy", "AWS::IoTTwinMaker::ComponentType", @@ -647,6 +654,7 @@ "AWS::SES::EmailIdentity", "AWS::IAM::UserToGroupAddition", "AWS::Events::Rule", + "AWS::CloudFront::KeyValueStore", "AWS::GameLift::GameSessionQueue", "AWS::DataBrew::Dataset", "AWS::EC2::VPNGatewayRoutePropagation", @@ -816,6 +824,7 @@ "AWS::CloudWatch::AnomalyDetector", "AWS::EC2::SubnetNetworkAclAssociation", "AWS::ServiceCatalog::ServiceAction", + "AWS::DMS::MigrationProject", "AWS::AppStream::Entitlement", "AWS::IAM::UserPolicy", "AWS::Connect::ViewVersion", @@ -899,6 +908,7 @@ "AWS::ElasticLoadBalancingV2::TrustStore", "AWS::Glue::Registry", "AWS::EC2::KeyPair", + "AWS::B2BI::Profile", "AWS::FSx::FileSystem", "AWS::AppStream::ApplicationFleetAssociation", "AWS::MediaTailor::LiveSource", @@ -1048,6 +1058,7 @@ "AWS::ApiGateway::Deployment", "AWS::WAFRegional::Rule", "AWS::Inspector::ResourceGroup", + "AWS::B2BI::Partnership", "AWS::LakeFormation::DataLakeSettings", "AWS::GreengrassV2::Deployment", "AWS::AutoScaling::ScalingPolicy", @@ -1062,6 +1073,7 @@ "AWS::ApiGatewayV2::RouteResponse", "AWS::QuickSight::Topic", "AWS::CloudWatch::MetricStream", + "AWS::DMS::DataProvider", "AWS::Location::GeofenceCollection", "AWS::SSM::Parameter", "AWS::ApiGatewayV2::ApiGatewayManagedOverrides", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-accessanalyzer-analyzer.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-accessanalyzer-analyzer.json index 3b9ebad59a..5f8b02f7cb 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-accessanalyzer-analyzer.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-accessanalyzer-analyzer.json @@ -93,7 +93,7 @@ "description": "The Configuration for Unused Access Analyzer", "properties": { "UnusedAccessAge": { - "description": "The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that haven't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 180 days.", + "description": "The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 180 days.", "maximum": 180, "minimum": 1, "type": "integer" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-autoscaling-autoscalinggroup.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-autoscaling-autoscalinggroup.json index d51af44c3f..d5ccdb7437 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-autoscaling-autoscalinggroup.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-autoscaling-autoscalinggroup.json @@ -181,6 +181,10 @@ "$ref": "#/definitions/VCpuCountRequest" } }, + "required": [ + "MemoryMiB", + "VCpuCount" + ], "type": "object" }, "InstancesDistribution": { @@ -529,20 +533,7 @@ "permissions": [ "autoscaling:*", "cloudwatch:PutMetricAlarm", - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeImages", - "ec2:DescribeInstanceAttribute", - "ec2:DescribeInstances", - "ec2:DescribeInstanceTypes", - "ec2:DescribeInstanceTypeOfferings", - "ec2:DescribeKeyPairs", - "ec2:DescribeLaunchTemplateVersions", - "ec2:DescribePlacementGroups", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSpotInstanceRequests", - "ec2:DescribeSubnets", - "ec2:DescribeVpcClassicLink", + "ec2:Describe*", "ec2:GetInstanceTypesFromInstanceRequirements", "ec2:RunInstances", "elasticloadbalancing:DescribeLoadBalancers", @@ -578,20 +569,7 @@ "permissions": [ "autoscaling:*", "cloudwatch:PutMetricAlarm", - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeImages", - "ec2:DescribeInstanceAttribute", - "ec2:DescribeInstances", - "ec2:DescribeInstanceTypes", - "ec2:DescribeInstanceTypeOfferings", - "ec2:DescribeKeyPairs", - "ec2:DescribeLaunchTemplateVersions", - "ec2:DescribePlacementGroups", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSpotInstanceRequests", - "ec2:DescribeSubnets", - "ec2:DescribeVpcClassicLink", + "ec2:Describe*", "ec2:GetInstanceTypesFromInstanceRequirements", "ec2:RunInstances", "elasticloadbalancing:DescribeLoadBalancers", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-capability.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-capability.json new file mode 100644 index 0000000000..97c168ae77 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-capability.json @@ -0,0 +1,277 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type" + ], + "definitions": { + "CapabilityConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Edi": { + "$ref": "#/definitions/EdiConfiguration" + } + }, + "required": [ + "Edi" + ], + "title": "Edi", + "type": "object" + } + ] + }, + "CapabilityType": { + "enum": [ + "edi" + ], + "type": "string" + }, + "EdiConfiguration": { + "additionalProperties": false, + "properties": { + "InputLocation": { + "$ref": "#/definitions/S3Location" + }, + "OutputLocation": { + "$ref": "#/definitions/S3Location" + }, + "TransformerId": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/EdiType" + } + }, + "required": [ + "InputLocation", + "OutputLocation", + "TransformerId", + "Type" + ], + "type": "object" + }, + "EdiType": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "X12Details": { + "$ref": "#/definitions/X12Details" + } + }, + "required": [ + "X12Details" + ], + "title": "X12Details", + "type": "object" + } + ] + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "BucketName": { + "maxLength": 63, + "minLength": 3, + "type": "string" + }, + "Key": { + "maxLength": 1024, + "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", + "Value" + ], + "type": "object" + }, + "X12Details": { + "additionalProperties": false, + "properties": { + "TransactionSet": { + "$ref": "#/definitions/X12TransactionSet" + }, + "Version": { + "$ref": "#/definitions/X12Version" + } + }, + "type": "object" + }, + "X12TransactionSet": { + "enum": [ + "X12_110", + "X12_180", + "X12_204", + "X12_210", + "X12_214", + "X12_215", + "X12_310", + "X12_315", + "X12_322", + "X12_404", + "X12_410", + "X12_820", + "X12_824", + "X12_830", + "X12_846", + "X12_850", + "X12_852", + "X12_855", + "X12_856", + "X12_860", + "X12_861", + "X12_864", + "X12_940", + "X12_990", + "X12_997" + ], + "type": "string" + }, + "X12Version": { + "enum": [ + "VERSION_4010", + "VERSION_4030", + "VERSION_5010" + ], + "type": "string" + } + }, + "description": "Definition of AWS::B2BI::Capability Resource Type", + "handlers": { + "create": { + "permissions": [ + "b2bi:CreateCapability", + "b2bi:TagResource", + "s3:GetObject", + "s3:ListBucket", + "events:DescribeRule", + "events:PutRule", + "events:PutTargets", + "logs:CreateLogDelivery", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:DescribeResourcePolicies", + "logs:ListLogDeliveries", + "logs:PutLogEvents", + "logs:PutResourcePolicy" + ] + }, + "delete": { + "permissions": [ + "b2bi:DeleteCapability" + ] + }, + "list": { + "permissions": [ + "b2bi:ListCapabilities" + ] + }, + "read": { + "permissions": [ + "b2bi:GetCapability", + "b2bi:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "b2bi:TagResource", + "b2bi:UntagResource", + "b2bi:UpdateCapability" + ] + } + }, + "primaryIdentifier": [ + "/properties/CapabilityId" + ], + "properties": { + "CapabilityArn": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "CapabilityId": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/CapabilityConfiguration" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "InstructionsDocuments": { + "items": { + "$ref": "#/definitions/S3Location" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + }, + "ModifiedAt": { + "format": "date-time", + "type": "string" + }, + "Name": { + "maxLength": 254, + "minLength": 1, + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Type": { + "$ref": "#/definitions/CapabilityType" + } + }, + "readOnlyProperties": [ + "/properties/CapabilityArn", + "/properties/CapabilityId", + "/properties/CreatedAt", + "/properties/ModifiedAt" + ], + "required": [ + "Configuration", + "Name", + "Type" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::B2BI::Capability" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-partnership.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-partnership.json new file mode 100644 index 0000000000..55ddd2aefe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-partnership.json @@ -0,0 +1,153 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Email", + "/properties/Phone", + "/properties/ProfileId" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Definition of AWS::B2BI::Partnership Resource Type", + "handlers": { + "create": { + "permissions": [ + "b2bi:CreatePartnership", + "b2bi:TagResource", + "s3:PutObject" + ] + }, + "delete": { + "permissions": [ + "b2bi:DeletePartnership" + ] + }, + "list": { + "permissions": [ + "b2bi:ListPartnerships" + ] + }, + "read": { + "permissions": [ + "b2bi:GetPartnership", + "b2bi:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "b2bi:TagResource", + "b2bi:UntagResource", + "b2bi:UpdatePartnership" + ] + } + }, + "primaryIdentifier": [ + "/properties/PartnershipId" + ], + "properties": { + "Capabilities": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "type": "array" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "Email": { + "maxLength": 254, + "minLength": 5, + "pattern": "^[\\w\\.\\-]+@[\\w\\.\\-]+$", + "type": "string" + }, + "ModifiedAt": { + "format": "date-time", + "type": "string" + }, + "Name": { + "maxLength": 254, + "minLength": 1, + "type": "string" + }, + "PartnershipArn": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "PartnershipId": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "Phone": { + "maxLength": 22, + "minLength": 7, + "pattern": "^\\+?([0-9 \\t\\-()\\/]{7,})(?:\\s*(?:#|x\\.?|ext\\.?|extension) \\t*(\\d+))?$", + "type": "string" + }, + "ProfileId": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TradingPartnerId": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CreatedAt", + "/properties/ModifiedAt", + "/properties/PartnershipArn", + "/properties/PartnershipId", + "/properties/TradingPartnerId" + ], + "required": [ + "Email", + "Name", + "ProfileId" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::B2BI::Partnership" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-profile.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-profile.json new file mode 100644 index 0000000000..aff5368c8d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-profile.json @@ -0,0 +1,161 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Logging" + ], + "definitions": { + "Logging": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Definition of AWS::B2BI::Profile Resource Type", + "handlers": { + "create": { + "permissions": [ + "b2bi:CreateProfile", + "b2bi:TagResource", + "logs:CreateLogDelivery", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:DescribeResourcePolicies", + "logs:ListLogDeliveries", + "logs:PutLogEvents", + "logs:PutResourcePolicy" + ] + }, + "delete": { + "permissions": [ + "b2bi:DeleteProfile", + "logs:DeleteLogDelivery", + "logs:ListLogDeliveries" + ] + }, + "list": { + "permissions": [ + "b2bi:ListProfiles" + ] + }, + "read": { + "permissions": [ + "b2bi:GetProfile", + "b2bi:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "b2bi:TagResource", + "b2bi:UntagResource", + "b2bi:UpdateProfile" + ] + } + }, + "primaryIdentifier": [ + "/properties/ProfileId" + ], + "properties": { + "BusinessName": { + "maxLength": 254, + "minLength": 1, + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "Email": { + "maxLength": 254, + "minLength": 5, + "pattern": "^[\\w\\.\\-]+@[\\w\\.\\-]+$", + "type": "string" + }, + "LogGroupName": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Logging": { + "$ref": "#/definitions/Logging" + }, + "ModifiedAt": { + "format": "date-time", + "type": "string" + }, + "Name": { + "maxLength": 254, + "minLength": 1, + "type": "string" + }, + "Phone": { + "maxLength": 22, + "minLength": 7, + "pattern": "^\\+?([0-9 \\t\\-()\\/]{7,})(?:\\s*(?:#|x\\.?|ext\\.?|extension) \\t*(\\d+))?$", + "type": "string" + }, + "ProfileArn": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "ProfileId": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/CreatedAt", + "/properties/LogGroupName", + "/properties/ModifiedAt", + "/properties/ProfileArn", + "/properties/ProfileId" + ], + "required": [ + "BusinessName", + "Logging", + "Name", + "Phone" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::B2BI::Profile" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-transformer.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-transformer.json new file mode 100644 index 0000000000..932f6f9230 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-b2bi-transformer.json @@ -0,0 +1,225 @@ +{ + "additionalProperties": false, + "definitions": { + "EdiType": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "X12Details": { + "$ref": "#/definitions/X12Details" + } + }, + "required": [ + "X12Details" + ], + "title": "X12Details", + "type": "object" + } + ] + }, + "FileFormat": { + "enum": [ + "XML", + "JSON" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "TransformerStatus": { + "enum": [ + "active", + "inactive" + ], + "type": "string" + }, + "X12Details": { + "additionalProperties": false, + "properties": { + "TransactionSet": { + "$ref": "#/definitions/X12TransactionSet" + }, + "Version": { + "$ref": "#/definitions/X12Version" + } + }, + "type": "object" + }, + "X12TransactionSet": { + "enum": [ + "X12_110", + "X12_180", + "X12_204", + "X12_210", + "X12_214", + "X12_215", + "X12_310", + "X12_315", + "X12_322", + "X12_404", + "X12_410", + "X12_820", + "X12_824", + "X12_830", + "X12_846", + "X12_850", + "X12_852", + "X12_855", + "X12_856", + "X12_860", + "X12_861", + "X12_864", + "X12_940", + "X12_990", + "X12_997" + ], + "type": "string" + }, + "X12Version": { + "enum": [ + "VERSION_4010", + "VERSION_4030", + "VERSION_5010" + ], + "type": "string" + } + }, + "description": "Definition of AWS::B2BI::Transformer Resource Type", + "handlers": { + "create": { + "permissions": [ + "b2bi:CreateTransformer", + "b2bi:TagResource", + "logs:CreateLogDelivery", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:DescribeResourcePolicies", + "logs:ListLogDeliveries", + "logs:PutLogEvents", + "logs:PutResourcePolicy" + ] + }, + "delete": { + "permissions": [ + "b2bi:DeleteTransformer", + "logs:DeleteLogDelivery", + "logs:ListLogDeliveries" + ] + }, + "list": { + "permissions": [ + "b2bi:ListTransformers" + ] + }, + "read": { + "permissions": [ + "b2bi:ListTagsForResource", + "b2bi:GetTransformer" + ] + }, + "update": { + "permissions": [ + "b2bi:TagResource", + "b2bi:UntagResource", + "b2bi:UpdateTransformer" + ] + } + }, + "primaryIdentifier": [ + "/properties/TransformerId" + ], + "properties": { + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "EdiType": { + "$ref": "#/definitions/EdiType" + }, + "FileFormat": { + "$ref": "#/definitions/FileFormat" + }, + "MappingTemplate": { + "maxLength": 350000, + "minLength": 0, + "type": "string" + }, + "ModifiedAt": { + "format": "date-time", + "type": "string" + }, + "Name": { + "maxLength": 254, + "minLength": 1, + "type": "string" + }, + "SampleDocument": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Status": { + "$ref": "#/definitions/TransformerStatus" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TransformerArn": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "TransformerId": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CreatedAt", + "/properties/TransformerArn", + "/properties/TransformerId" + ], + "required": [ + "EdiType", + "FileFormat", + "MappingTemplate", + "Name", + "Status" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::B2BI::Transformer" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-cloud9-environmentec2.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-cloud9-environmentec2.json index 69a32d5d15..4b5f3bdc0f 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-cloud9-environmentec2.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-cloud9-environmentec2.json @@ -98,6 +98,7 @@ "/properties/Arn" ], "required": [ + "ImageId", "InstanceType" ], "typeName": "AWS::Cloud9::EnvironmentEC2" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-cloudfront-keyvaluestore.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-cloudfront-keyvaluestore.json new file mode 100644 index 0000000000..211211ff7f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-cloudfront-keyvaluestore.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "ImportSource": { + "additionalProperties": false, + "properties": { + "SourceArn": { + "type": "string" + }, + "SourceType": { + "type": "string" + } + }, + "required": [ + "SourceType", + "SourceArn" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::KeyValueStore", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateKeyValueStore", + "cloudfront:DescribeKeyValueStore", + "s3:GetObject", + "s3:HeadObject", + "s3:GetBucketLocation" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteKeyValueStore", + "cloudfront:DescribeKeyValueStore" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListKeyValueStores" + ] + }, + "read": { + "permissions": [ + "cloudfront:DescribeKeyValueStore" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateKeyValueStore", + "cloudfront:DescribeKeyValueStore" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Comment": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "ImportSource": { + "$ref": "#/definitions/ImportSource" + }, + "Name": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id", + "/properties/Status" + ], + "required": [ + "Name" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::CloudFront::KeyValueStore", + "writeOnlyProperties": [ + "/properties/ImportSource" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-cloudtrail-eventdatastore.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-cloudtrail-eventdatastore.json index 7e8b204fe4..0921446a9d 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-cloudtrail-eventdatastore.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-cloudtrail-eventdatastore.json @@ -163,19 +163,28 @@ "CloudTrail:CreateEventDataStore", "CloudTrail:AddTags", "CloudTrail:PutInsightSelectors", + "CloudTrail:EnableFederation", + "CloudTrail:GetEventDataStore", "iam:PassRole", "iam:GetRole", "iam:CreateServiceLinkedRole", "organizations:DescribeOrganization", "organizations:ListAWSServiceAccessForOrganization", "kms:GenerateDataKey", - "kms:Decrypt" + "kms:Decrypt", + "glue:CreateDatabase", + "glue:CreateTable", + "glue:PassConnection", + "lakeformation:RegisterResource" ] }, "delete": { "permissions": [ "CloudTrail:DeleteEventDataStore", - "CloudTrail:GetEventDataStore" + "CloudTrail:GetEventDataStore", + "CloudTrail:DisableFederation", + "glue:DeleteTable", + "lakeformation:DeregisterResource" ] }, "list": { @@ -205,11 +214,19 @@ "CloudTrail:GetEventDataStore", "CloudTrail:PutInsightSelectors", "CloudTrail:GetInsightSelectors", + "CloudTrail:EnableFederation", + "CloudTrail:DisableFederation", "iam:PassRole", "iam:GetRole", "iam:CreateServiceLinkedRole", "organizations:DescribeOrganization", - "organizations:ListAWSServiceAccessForOrganization" + "organizations:ListAWSServiceAccessForOrganization", + "glue:CreateDatabase", + "glue:CreateTable", + "glue:PassConnection", + "lakeformation:RegisterResource", + "glue:DeleteTable", + "lakeformation:DeregisterResource" ] } }, @@ -238,6 +255,14 @@ "description": "The ARN of the event data store.", "type": "string" }, + "FederationEnabled": { + "description": "Indicates whether federation is enabled on an event data store.", + "type": "boolean" + }, + "FederationRoleArn": { + "description": "The ARN of the role used for event data store federation.", + "type": "string" + }, "IngestionEnabled": { "description": "Indicates whether the event data store is ingesting events.", "type": "boolean" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-codedeploy-deploymentconfig.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-codedeploy-deploymentconfig.json index 385ef90c5a..a37713685a 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-codedeploy-deploymentconfig.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-codedeploy-deploymentconfig.json @@ -4,6 +4,7 @@ "/properties/DeploymentConfigName", "/properties/MinimumHealthyHosts", "/properties/ComputePlatform", + "/properties/ZonalConfig", "/properties/TrafficRoutingConfig" ], "definitions": { @@ -27,6 +28,22 @@ ], "type": "object" }, + "MinimumHealthyHostsPerZone": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "integer" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, "TimeBasedCanary": { "additionalProperties": false, "properties": { @@ -76,6 +93,24 @@ "Type" ], "type": "object" + }, + "ZonalConfig": { + "additionalProperties": false, + "properties": { + "FirstZoneMonitorDurationInSeconds": { + "format": "int64", + "type": "integer" + }, + "MinimumHealthyHostsPerZone": { + "$ref": "#/definitions/MinimumHealthyHostsPerZone" + }, + "MonitorDurationInSeconds": { + "format": "int64", + "type": "integer" + } + }, + "required": [], + "type": "object" } }, "description": "Resource Type definition for AWS::CodeDeploy::DeploymentConfig", @@ -121,6 +156,10 @@ "TrafficRoutingConfig": { "$ref": "#/definitions/TrafficRoutingConfig", "description": "The configuration that specifies how the deployment traffic is routed." + }, + "ZonalConfig": { + "$ref": "#/definitions/ZonalConfig", + "description": "The zonal deployment config that specifies how the zonal deployment behaves" } }, "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-codedeploy", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-codepipeline-pipeline.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-codepipeline-pipeline.json index ad3328034b..bb3404325d 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-codepipeline-pipeline.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-codepipeline-pipeline.json @@ -159,6 +159,54 @@ ], "type": "object" }, + "GitConfiguration": { + "additionalProperties": false, + "properties": { + "Push": { + "items": { + "$ref": "#/definitions/GitPushFilter" + }, + "type": "array", + "uniqueItems": true + }, + "SourceActionName": { + "type": "string" + } + }, + "required": [ + "SourceActionName" + ], + "type": "object" + }, + "GitPushFilter": { + "additionalProperties": false, + "properties": { + "Tags": { + "$ref": "#/definitions/GitTagFilterCriteria" + } + }, + "type": "object" + }, + "GitTagFilterCriteria": { + "additionalProperties": false, + "properties": { + "Excludes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Includes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, "InputArtifact": { "additionalProperties": false, "properties": { @@ -183,6 +231,21 @@ ], "type": "object" }, + "PipelineTriggerDeclaration": { + "additionalProperties": false, + "properties": { + "GitConfiguration": { + "$ref": "#/definitions/GitConfiguration" + }, + "ProviderType": { + "type": "string" + } + }, + "required": [ + "ProviderType" + ], + "type": "object" + }, "StageDeclaration": { "additionalProperties": false, "properties": { @@ -241,6 +304,24 @@ "Key" ], "type": "object" + }, + "VariableDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValue": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" } }, "description": "Resource Type definition for AWS::CodePipeline::Pipeline", @@ -317,6 +398,9 @@ "Name": { "type": "string" }, + "PipelineType": { + "type": "string" + }, "RestartExecutionOnUpdate": { "type": "boolean" }, @@ -337,6 +421,20 @@ "type": "array", "uniqueItems": false }, + "Triggers": { + "items": { + "$ref": "#/definitions/PipelineTriggerDeclaration" + }, + "type": "array", + "uniqueItems": true + }, + "Variables": { + "items": { + "$ref": "#/definitions/VariableDeclaration" + }, + "type": "array", + "uniqueItems": true + }, "Version": { "type": "string" } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-config-configurationrecorder.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-config-configurationrecorder.json index fd43d8851a..b5681f0ee4 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-config-configurationrecorder.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-config-configurationrecorder.json @@ -45,6 +45,48 @@ }, "type": "object" }, + "RecordingMode": { + "additionalProperties": false, + "properties": { + "RecordingFrequency": { + "type": "string" + }, + "RecordingModeOverrides": { + "items": { + "$ref": "#/definitions/RecordingModeOverride" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "RecordingFrequency" + ], + "type": "object" + }, + "RecordingModeOverride": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "RecordingFrequency": { + "type": "string" + }, + "ResourceTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "ResourceTypes", + "RecordingFrequency" + ], + "type": "object" + }, "RecordingStrategy": { "additionalProperties": false, "properties": { @@ -72,6 +114,9 @@ "RecordingGroup": { "$ref": "#/definitions/RecordingGroup" }, + "RecordingMode": { + "$ref": "#/definitions/RecordingMode" + }, "RoleARN": { "type": "string" } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-instance.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-instance.json index 5460201287..8e584a138a 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-instance.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-instance.json @@ -61,6 +61,29 @@ "description": "Mandatory element which enables outbound calls on new instance.", "type": "boolean" }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "UseCustomTTSVoices": { "description": "Boolean flag which enables USE_CUSTOM_TTS_VOICES on an instance.", "type": "boolean" @@ -73,6 +96,7 @@ "connect:CreateInstance", "connect:DescribeInstance", "connect:UpdateInstanceAttribute", + "connect:TagResource", "ds:CheckAlias", "ds:CreateAlias", "ds:AuthorizeApplication", @@ -89,6 +113,7 @@ "permissions": [ "connect:DeleteInstance", "connect:DescribeInstance", + "connect:UntagResource", "ds:DeleteDirectory", "ds:UnauthorizeApplication", "ds:DescribeDirectories" @@ -113,7 +138,9 @@ "connect:ListInstanceAttributes", "connect:UpdateInstanceAttribute", "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy" + "iam:PutRolePolicy", + "connect:TagResource", + "connect:UntagResource" ] } }, @@ -174,6 +201,15 @@ "ServiceRole": { "description": "Service linked role created as part of instance creation.", "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true } }, "readOnlyProperties": [ @@ -189,10 +225,11 @@ ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true }, "typeName": "AWS::Connect::Instance", "writeOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-instancestorageconfig.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-instancestorageconfig.json index 0be5d2f921..5ed5a6196f 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-instancestorageconfig.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-instancestorageconfig.json @@ -112,7 +112,8 @@ }, "required": [ "Prefix", - "RetentionPeriodHours" + "RetentionPeriodHours", + "EncryptionConfig" ], "type": "object" }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-integrationassociation.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-integrationassociation.json index 811f75e49e..aee475cb1b 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-integrationassociation.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-integrationassociation.json @@ -28,7 +28,8 @@ "description": "Specifies the integration type to be associated with the instance", "enum": [ "LEX_BOT", - "LAMBDA_FUNCTION" + "LAMBDA_FUNCTION", + "APPLICATION" ], "type": "string" } @@ -37,10 +38,23 @@ "handlers": { "create": { "permissions": [ + "connect:DescribeInstance", + "ds:DescribeDirectories", + "app-integrations:CreateEventIntegrationAssociation", + "mobiletargeting:GetApp", + "cases:GetDomain", + "wisdom:GetAssistant", + "wisdom:GetKnowledgeBase", + "wisdom:TagResource", + "voiceid:DescribeDomain", + "events:PutTargets", + "events:PutRule", "connect:AssociateBot", "connect:AssociateLambdaFunction", + "connect:CreateIntegrationAssociation", "connect:ListBots", "connect:ListLambdaFunctions", + "connect:ListIntegrationAssociations", "lambda:addPermission", "lex:GetBot", "lex:DescribeBotAlias", @@ -48,31 +62,47 @@ "lex:UpdateResourcePolicy", "lex:CreateResourcePolicyStatement", "lambda:AddPermission", + "app-integrations:GetApplication", + "iam:AttachRolePolicy", + "iam:CreateServiceLinkedRole", + "iam:GetRolePolicy", "iam:PutRolePolicy" ] }, "delete": { "permissions": [ + "connect:DescribeInstance", + "ds:DescribeDirectories", + "app-integrations:DeleteEventIntegrationAssociation", + "events:ListTargetsByRule", + "events:RemoveTargets", + "events:DeleteRule", "connect:DisassociateBot", "connect:DisassociateLambdaFunction", + "connect:DeleteIntegrationAssociation", "connect:ListBots", "connect:ListLambdaFunctions", + "connect:ListIntegrationAssociations", "lex:DeleteResourcePolicy", "lex:DeleteResourcePolicyStatement", "lambda:RemovePermission", + "iam:GetRolePolicy", + "iam:DeleteRolePolicy", "iam:PutRolePolicy" ] }, "list": { "permissions": [ "connect:ListBots", - "connect:ListLambdaFunctions" + "connect:ListLambdaFunctions", + "connect:ListIntegrationAssociations" ] }, "read": { "permissions": [ "connect:ListBots", - "connect:ListLambdaFunctions" + "connect:ListLambdaFunctions", + "connect:ListIntegrationAssociations" ] }, "update": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-dms-dataprovider.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-dms-dataprovider.json new file mode 100644 index 0000000000..48fbb583be --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-dms-dataprovider.json @@ -0,0 +1,293 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/DataProviderName" + ] + ], + "additionalProperties": false, + "definitions": { + "DmsSslModeValue": { + "enum": [ + "none", + "require", + "verify_ca", + "verify_full" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::DMS::DataProvider", + "handlers": { + "create": { + "permissions": [ + "dms:CreateDataProvider", + "dms:ListDataProviders", + "dms:DescribeDataProviders", + "dms:AddTagsToResource", + "dms:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "dms:DeleteDataProvider" + ] + }, + "list": { + "permissions": [ + "dms:ListDataProviders", + "dms:DescribeDataProviders", + "dms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "dms:ListDataProviders", + "dms:DescribeDataProviders", + "dms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "dms:UpdateDataProvider", + "dms:ModifyDataProvider", + "dms:AddTagsToResource", + "dms:RemoveTagsToResource", + "dms:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/DataProviderArn" + ], + "properties": { + "DataProviderArn": { + "description": "The data provider ARN.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "DataProviderCreationTime": { + "description": "The data provider creation time.", + "maxLength": 40, + "minLength": 1, + "type": "string" + }, + "DataProviderIdentifier": { + "description": "The property describes an identifier for the data provider. It is used for describing/deleting/modifying can be name/arn", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "DataProviderName": { + "description": "The property describes a name to identify the data provider.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "Description": { + "description": "The optional description of the data provider.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "Engine": { + "description": "The property describes a data engine for the data provider.", + "enum": [ + "postgresql", + "mysql", + "oracle", + "sqlserver", + "aurora", + "aurora_postgresql" + ], + "type": "string" + }, + "ExactSettings": { + "default": false, + "description": "The property describes the exact settings which can be modified", + "type": "boolean" + }, + "Settings": { + "description": "The property identifies the exact type of settings for the data provider.", + "oneOf": [ + { + "additionalProperties": false, + "description": "PostgreSqlSettings property identifier.", + "properties": { + "PostgreSqlSettings": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Port": { + "type": "integer" + }, + "ServerName": { + "type": "string" + }, + "SslMode": { + "$ref": "#/definitions/DmsSslModeValue", + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + { + "additionalProperties": false, + "description": "MySqlSettings property identifier.", + "properties": { + "MySqlSettings": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + }, + "Port": { + "type": "integer" + }, + "ServerName": { + "type": "string" + }, + "SslMode": { + "$ref": "#/definitions/DmsSslModeValue", + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + { + "additionalProperties": false, + "description": "OracleSettings property identifier.", + "properties": { + "OracleSettings": { + "additionalProperties": false, + "properties": { + "AsmServer": { + "type": "string" + }, + "CertificateArn": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Port": { + "type": "integer" + }, + "SecretsManagerOracleAsmAccessRoleArn": { + "type": "string" + }, + "SecretsManagerOracleAsmSecretId": { + "type": "string" + }, + "SecretsManagerSecurityDbEncryptionAccessRoleArn": { + "type": "string" + }, + "SecretsManagerSecurityDbEncryptionSecretId": { + "type": "string" + }, + "ServerName": { + "type": "string" + }, + "SslMode": { + "$ref": "#/definitions/DmsSslModeValue", + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + { + "additionalProperties": false, + "description": "MicrosoftSqlServerSettings property identifier.", + "properties": { + "MicrosoftSqlServerSettings": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Port": { + "type": "integer" + }, + "ServerName": { + "type": "string" + }, + "SslMode": { + "$ref": "#/definitions/DmsSslModeValue", + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + ], + "type": "object" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/DataProviderArn", + "/properties/DataProviderCreationTime" + ], + "required": [ + "Engine" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-dms.git", + "tagging": { + "taggable": true + }, + "typeName": "AWS::DMS::DataProvider", + "writeOnlyProperties": [ + "/properties/DataProviderIdentifier", + "/properties/ExactSettings" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-dms-endpoint.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-dms-endpoint.json index 19a1d980a3..fc2e6a19b0 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-dms-endpoint.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-dms-endpoint.json @@ -104,6 +104,15 @@ "CurrentLsn": { "type": "string" }, + "KeepCsvFiles": { + "type": "boolean" + }, + "LoadTimeout": { + "type": "integer" + }, + "MaxFileSize": { + "type": "integer" + }, "MaxKBytesPerRead": { "type": "integer" }, @@ -115,6 +124,9 @@ }, "SetDataCaptureChanges": { "type": "boolean" + }, + "WriteBufferSize": { + "type": "integer" } }, "type": "object" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-dms-instanceprofile.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-dms-instanceprofile.json new file mode 100644 index 0000000000..8f88612c1c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-dms-instanceprofile.json @@ -0,0 +1,170 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/InstanceProfileName" + ] + ], + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::DMS::InstanceProfile.", + "handlers": { + "create": { + "permissions": [ + "dms:CreateInstanceProfile", + "dms:ListInstanceProfiles", + "dms:DescribeInstanceProfiles", + "dms:AddTagsToResource", + "dms:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "dms:DeleteInstanceProfile" + ] + }, + "list": { + "permissions": [ + "dms:ListInstanceProfiles", + "dms:DescribeInstanceProfiles", + "dms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "dms:ListInstanceProfiles", + "dms:DescribeInstanceProfiles", + "dms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "dms:UpdateInstanceProfile", + "dms:ModifyInstanceProfile", + "dms:AddTagsToResource", + "dms:RemoveTagsToResource", + "dms:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceProfileArn" + ], + "properties": { + "AvailabilityZone": { + "description": "The property describes an availability zone of the instance profile.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "Description": { + "description": "The optional description of the instance profile.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "InstanceProfileArn": { + "description": "The property describes an ARN of the instance profile.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "InstanceProfileCreationTime": { + "description": "The property describes a creating time of the instance profile.", + "maxLength": 40, + "minLength": 1, + "type": "string" + }, + "InstanceProfileIdentifier": { + "description": "The property describes an identifier for the instance profile. It is used for describing/deleting/modifying. Can be name/arn", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "InstanceProfileName": { + "description": "The property describes a name for the instance profile.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KmsKeyArn": { + "description": "The property describes kms key arn for the instance profile.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "NetworkType": { + "description": "The property describes a network type for the instance profile.", + "enum": [ + "IPV4", + "IPV6", + "DUAL" + ], + "type": "string" + }, + "PubliclyAccessible": { + "default": false, + "description": "The property describes the publicly accessible of the instance profile", + "type": "boolean" + }, + "SubnetGroupIdentifier": { + "description": "The property describes a subnet group identifier for the instance profile.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VpcSecurityGroups": { + "description": "The property describes vps security groups for the instance profile.", + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/InstanceProfileArn", + "/properties/InstanceProfileCreationTime" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-csf.git", + "tagging": { + "taggable": true + }, + "typeName": "AWS::DMS::InstanceProfile", + "writeOnlyProperties": [ + "/properties/InstanceProfileIdentifier" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-dms-migrationproject.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-dms-migrationproject.json new file mode 100644 index 0000000000..d604d5bd48 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-dms-migrationproject.json @@ -0,0 +1,211 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/MigrationProjectName" + ] + ], + "additionalProperties": false, + "definitions": { + "DataProviderDescriptor": { + "additionalProperties": false, + "description": "It is an object that describes Source and Target DataProviders and credentials for connecting to databases that are used in MigrationProject", + "properties": { + "DataProviderArn": { + "type": "string" + }, + "DataProviderIdentifier": { + "type": "string" + }, + "DataProviderName": { + "type": "string" + }, + "SecretsManagerAccessRoleArn": { + "type": "string" + }, + "SecretsManagerSecretId": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, , and -.", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, , and -.", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "deprecatedProperties": [ + "/properties/MigrationProjectCreationTime" + ], + "description": "Resource schema for AWS::DMS::MigrationProject", + "handlers": { + "create": { + "permissions": [ + "dms:CreateMigrationProject", + "dms:ListMigrationProjects", + "dms:DescribeMigrationProjects", + "dms:AddTagsToResource", + "dms:ListTagsForResource", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "dms:DeleteMigrationProject" + ] + }, + "list": { + "permissions": [ + "dms:ListMigrationProjects", + "dms:DescribeMigrationProjects", + "dms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "dms:DescribeMigrationProjects", + "dms:ListMigrationProjects", + "dms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "dms:UpdateMigrationProject", + "dms:ModifyMigrationProject", + "dms:AddTagsToResource", + "dms:RemoveTagsToResource", + "dms:ListTagsForResource", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/MigrationProjectArn" + ], + "properties": { + "Description": { + "description": "The optional description of the migration project.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "InstanceProfileArn": { + "description": "The property describes an instance profile arn for the migration project. For read", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "InstanceProfileIdentifier": { + "description": "The property describes an instance profile identifier for the migration project. For create", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "InstanceProfileName": { + "description": "The property describes an instance profile name for the migration project. For read", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "MigrationProjectArn": { + "description": "The property describes an ARN of the migration project.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "MigrationProjectCreationTime": { + "description": "The property describes a creating time of the migration project.", + "maxLength": 40, + "minLength": 1, + "type": "string" + }, + "MigrationProjectIdentifier": { + "description": "The property describes an identifier for the migration project. It is used for describing/deleting/modifying can be name/arn", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "MigrationProjectName": { + "description": "The property describes a name to identify the migration project.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "SchemaConversionApplicationAttributes": { + "additionalProperties": false, + "description": "The property describes schema conversion application attributes for the migration project.", + "properties": { + "S3BucketPath": { + "type": "string" + }, + "S3BucketRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "SourceDataProviderDescriptors": { + "description": "The property describes source data provider descriptors for the migration project.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/DataProviderDescriptor" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TargetDataProviderDescriptors": { + "description": "The property describes target data provider descriptors for the migration project.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/DataProviderDescriptor" + }, + "type": "array", + "uniqueItems": true + }, + "TransformationRules": { + "description": "The property describes transformation rules for the migration project.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/MigrationProjectArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-csf.git", + "tagging": { + "taggable": true + }, + "typeName": "AWS::DMS::MigrationProject", + "writeOnlyProperties": [ + "/properties/MigrationProjectIdentifier", + "/properties/InstanceProfileIdentifier", + "/properties/SourceDataProviderDescriptors/*/DataProviderIdentifier", + "/properties/TargetDataProviderDescriptors/*/DataProviderIdentifier" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-dms-replicationconfig.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-dms-replicationconfig.json index e2165ba270..15358362ce 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-dms-replicationconfig.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-dms-replicationconfig.json @@ -1,5 +1,13 @@ { + "additionalIdentifiers": [ + [ + "/properties/ReplicationConfigIdentifier" + ] + ], "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ResourceIdentifier" + ], "definitions": { "ComputeConfig": { "additionalProperties": false, @@ -71,14 +79,20 @@ "permissions": [ "dms:CreateReplicationConfig", "dms:AddTagsToResource", - "dms:ListTagsForResource" + "dms:ListTagsForResource", + "iam:CreateServiceLinkedRole", + "iam:AttachRolePolicy", + "iam:PutRolePolicy", + "iam:UpdateRoleDescription" ] }, "delete": { "permissions": [ "dms:DescribeReplicationConfigs", "dms:DeleteReplicationConfig", - "dms:ListTagsForResource" + "dms:ListTagsForResource", + "iam:DeleteServiceLinkedRole", + "iam:GetServiceLinkedRoleDeletionStatus" ] }, "list": { @@ -98,7 +112,11 @@ "dms:ModifyReplicationConfig", "dms:AddTagsToResource", "dms:RemoveTagsToResource", - "dms:ListTagsForResource" + "dms:ListTagsForResource", + "iam:CreateServiceLinkedRole", + "iam:AttachRolePolicy", + "iam:PutRolePolicy", + "iam:UpdateRoleDescription" ] } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-ipamallocation.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-ipamallocation.json index fd71161fe8..9a9a2fdf87 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-ipamallocation.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-ipamallocation.json @@ -8,7 +8,7 @@ ], "definitions": { "Cidr": { - "description": "Represents a single IPv4 or IPv6 CIDR", + "description": "Represents an IPAM custom allocation of a single IPv4 or IPv6 CIDR", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-route.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-route.json index 722dba73ff..adb9171564 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-route.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-route.json @@ -62,6 +62,10 @@ "description": "The primary identifier of the resource generated by the service.", "type": "string" }, + "CoreNetworkArn": { + "description": "The Amazon Resource Name (ARN) of the core network.", + "type": "string" + }, "DestinationCidrBlock": { "description": "The IPv4 CIDR block used for the destination match.", "type": "string" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-securitygroupegress.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-securitygroupegress.json index bda5e89487..96c9486d88 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-securitygroupegress.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-securitygroupegress.json @@ -11,38 +11,78 @@ "/properties/DestinationPrefixListId" ], "description": "Resource Type definition for AWS::EC2::SecurityGroupEgress", + "handlers": { + "create": { + "permissions": [ + "ec2:AuthorizeSecurityGroupEgress", + "ec2:RevokeSecurityGroupEgress", + "ec2:DescribeSecurityGroupRules" + ] + }, + "delete": { + "permissions": [ + "ec2:RevokeSecurityGroupEgress", + "ec2:DescribeSecurityGroupRules" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSecurityGroupRules" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSecurityGroupRules" + ] + }, + "update": { + "permissions": [ + "ec2:UpdateSecurityGroupRuleDescriptionsEgress" + ] + } + }, "primaryIdentifier": [ "/properties/Id" ], "properties": { "CidrIp": { + "description": "The IPv4 ranges", "type": "string" }, "CidrIpv6": { + "description": "[VPC only] The IPv6 ranges", "type": "string" }, "Description": { + "description": "Resource Type definition for an egress (outbound) security group rule.", "type": "string" }, "DestinationPrefixListId": { + "description": "[EC2-VPC only] The ID of a prefix list.", "type": "string" }, "DestinationSecurityGroupId": { + "description": "You must specify a destination security group (DestinationPrefixListId or DestinationSecurityGroupId) or a CIDR range (CidrIp or CidrIpv6).", "type": "string" }, "FromPort": { + "description": "The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. A value of -1 indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all codes.", "type": "integer" }, "GroupId": { + "description": "The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.", "type": "string" }, "Id": { + "description": "The Security Group Rule Id", "type": "string" }, "IpProtocol": { + "description": "[VPC only] Use -1 to specify all protocols. When authorizing security group rules, specifying -1 or a protocol number other than tcp, udp, icmp, or icmpv6 allows traffic on all ports, regardless of any port range you specify. For tcp, udp, and icmp, you must specify a port range. For icmpv6, the port range is optional; if you omit the port range, traffic for all types and codes is allowed.", "type": "string" }, "ToPort": { + "description": "The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of -1 indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 types, you must specify all codes.", "type": "integer" } }, @@ -53,5 +93,12 @@ "IpProtocol", "GroupId" ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, "typeName": "AWS::EC2::SecurityGroupEgress" } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-snapshotblockpublicaccess.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-snapshotblockpublicaccess.json new file mode 100644 index 0000000000..06fa2abdea --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-snapshotblockpublicaccess.json @@ -0,0 +1,62 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::EC2::SnapshotBlockPublicAccess", + "handlers": { + "create": { + "permissions": [ + "ec2:EnableSnapshotBlockPublicAccess", + "ec2:GetSnapshotBlockPublicAccessState" + ] + }, + "delete": { + "permissions": [ + "ec2:DisableSnapshotBlockPublicAccess", + "ec2:GetSnapshotBlockPublicAccessState" + ] + }, + "list": { + "permissions": [ + "ec2:GetSnapshotBlockPublicAccessState" + ] + }, + "read": { + "permissions": [ + "ec2:GetSnapshotBlockPublicAccessState" + ] + }, + "update": { + "permissions": [ + "ec2:EnableSnapshotBlockPublicAccess", + "ec2:GetSnapshotBlockPublicAccessState" + ] + } + }, + "primaryIdentifier": [ + "/properties/AccountId" + ], + "properties": { + "AccountId": { + "description": "The identifier for the specified AWS account.", + "type": "string" + }, + "State": { + "description": "The state of EBS Snapshot Block Public Access.", + "enum": [ + "block-all-sharing", + "block-new-sharing" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/AccountId" + ], + "required": [ + "State" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::EC2::SnapshotBlockPublicAccess" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-verifiedaccesstrustprovider.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-verifiedaccesstrustprovider.json index ef1cbc38c4..dc3e6591e6 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-verifiedaccesstrustprovider.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-verifiedaccesstrustprovider.json @@ -12,6 +12,10 @@ "additionalProperties": false, "description": "The options for device identity based trust providers.", "properties": { + "PublicSigningKeyUrl": { + "description": "URL Verified Access will use to verify authenticity of the device tokens.", + "type": "string" + }, "TenantId": { "description": "The ID of the tenant application with the device-identity provider.", "type": "string" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-capacityprovider.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-capacityprovider.json index 931f5e479c..1b13eef3a1 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-capacityprovider.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-capacityprovider.json @@ -11,6 +11,13 @@ "AutoScalingGroupArn": { "type": "string" }, + "ManagedDraining": { + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, "ManagedScaling": { "$ref": "#/definitions/ManagedScaling" }, @@ -127,5 +134,8 @@ "required": [ "AutoScalingGroupProvider" ], + "tagging": { + "taggable": true + }, "typeName": "AWS::ECS::CapacityProvider" } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-service.json index 1f7b4ccb6e..6c8e897e37 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-service.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-service.json @@ -392,7 +392,8 @@ "permissions": [ "ecs:CreateService", "ecs:DescribeServices", - "iam:PassRole" + "iam:PassRole", + "ecs:TagResource" ], "timeoutInMinutes": 180 }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-elasticache-serverlesscache.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-elasticache-serverlesscache.json index 226c0ed2a9..13b1865d60 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-elasticache-serverlesscache.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-elasticache-serverlesscache.json @@ -247,8 +247,10 @@ "/properties/FullEngineVersion", "/properties/CreateTime", "/properties/Status", - "/properties/Endpoint", - "/properties/ReaderEndpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReaderEndpoint/Address", + "/properties/ReaderEndpoint/Port", "/properties/ARN" ], "required": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-elasticloadbalancingv2-targetgroup.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-elasticloadbalancingv2-targetgroup.json index c693681f0e..4c14e960a3 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-elasticloadbalancingv2-targetgroup.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-elasticloadbalancingv2-targetgroup.json @@ -86,6 +86,8 @@ "elasticloadbalancing:CreateTargetGroup", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:RegisterTargets", + "elasticloadbalancing:ModifyTargetGroupAttributes", + "elasticloadbalancing:DescribeTargetHealth", "elasticloadbalancing:AddTags" ] }, @@ -114,6 +116,7 @@ "elasticloadbalancing:ModifyTargetGroup", "elasticloadbalancing:ModifyTargetGroupAttributes", "elasticloadbalancing:RegisterTargets", + "elasticloadbalancing:DescribeTargetHealth", "elasticloadbalancing:DeregisterTargets", "elasticloadbalancing:AddTags", "elasticloadbalancing:RemoveTags" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-emr-studio.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-emr-studio.json index b6c31749d5..56261e56d5 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-emr-studio.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-emr-studio.json @@ -6,7 +6,11 @@ "/properties/ServiceRole", "/properties/UserRole", "/properties/VpcId", - "/properties/WorkspaceSecurityGroupId" + "/properties/WorkspaceSecurityGroupId", + "/properties/TrustedIdentityPropagationEnabled", + "/properties/IdcUserAssignment", + "/properties/IdcInstanceArn", + "/properties/EncryptionKeyArn" ], "definitions": { "Arn": { @@ -121,6 +125,10 @@ "minLength": 0, "type": "string" }, + "EncryptionKeyArn": { + "$ref": "#/definitions/Arn", + "description": "The AWS KMS key identifier (ARN) used to encrypt AWS EMR Studio workspace and notebook files when backed up to AWS S3." + }, "EngineSecurityGroupId": { "description": "The ID of the Amazon EMR Studio Engine security group. The Engine security group allows inbound network traffic from the Workspace security group, and it must be in the same VPC specified by VpcId.", "maxLength": 256, @@ -128,6 +136,20 @@ "pattern": "^sg-[a-zA-Z0-9\\-._]+$", "type": "string" }, + "IdcInstanceArn": { + "description": "The ARN of the IAM Identity Center instance to create the Studio application.", + "maxLength": 2048, + "minLength": 20, + "type": "string" + }, + "IdcUserAssignment": { + "description": "Specifies whether IAM Identity Center user assignment is REQUIRED or OPTIONAL. If the value is set to REQUIRED, users must be explicitly assigned to the Studio application to access the Studio.", + "enum": [ + "REQUIRED", + "OPTIONAL" + ], + "type": "string" + }, "IdpAuthUrl": { "description": "Your identity provider's authentication endpoint. Amazon EMR Studio redirects federated users to this endpoint for authentication when logging in to a Studio with the Studio URL.", "maxLength": 4096, @@ -170,6 +192,10 @@ "$ref": "#/definitions/Tags", "description": "A list of tags to associate with the Studio. Tags are user-defined key-value pairs that consist of a required key string with a maximum of 128 characters, and an optional value string with a maximum of 256 characters." }, + "TrustedIdentityPropagationEnabled": { + "description": "A Boolean indicating whether to enable Trusted identity propagation for the Studio. The default value is false.", + "type": "boolean" + }, "Url": { "description": "The unique Studio access URL.", "maxLength": 4096, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-emr-studiosessionmapping.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-emr-studiosessionmapping.json index 04af6b1e53..bfb5c89509 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-emr-studiosessionmapping.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-emr-studiosessionmapping.json @@ -35,6 +35,8 @@ "sso-directory:SearchGroups", "sso-directory:DescribeUser", "sso-directory:DescribeGroup", + "sso:GetManagedApplicationInstance", + "sso:DescribeInstance", "sso:ListDirectoryAssociations", "sso:GetProfile", "sso:ListProfiles", @@ -53,7 +55,8 @@ "sso-directory:SearchGroups", "sso-directory:DescribeUser", "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance" + "sso:GetManagedApplicationInstance", + "sso:DescribeInstance" ] }, "update": { @@ -64,7 +67,8 @@ "sso-directory:SearchGroups", "sso-directory:DescribeUser", "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance" + "sso:GetManagedApplicationInstance", + "sso:DescribeInstance" ] } }, diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-eventschemas-discoverer.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-eventschemas-discoverer.json similarity index 100% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-eventschemas-discoverer.json rename to src/cfnlint/data/schemas/providers/us_east_1/aws-eventschemas-discoverer.json diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-eventschemas-registry.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-eventschemas-registry.json index 672cd15491..64db402b7f 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-eventschemas-registry.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-eventschemas-registry.json @@ -22,23 +22,58 @@ } }, "description": "Resource Type definition for AWS::EventSchemas::Registry", + "handlers": { + "create": { + "permissions": [ + "schemas:DescribeRegistry", + "schemas:CreateRegistry", + "schemas:TagResource" + ] + }, + "delete": { + "permissions": [ + "schemas:DescribeRegistry", + "schemas:DeleteRegistry" + ] + }, + "list": { + "permissions": [ + "schemas:ListRegistries" + ] + }, + "read": { + "permissions": [ + "schemas:DescribeRegistry" + ] + }, + "update": { + "permissions": [ + "schemas:DescribeRegistry", + "schemas:UpdateRegistry", + "schemas:TagResource", + "schemas:UntagResource", + "schemas:ListTagsForResource" + ] + } + }, "primaryIdentifier": [ - "/properties/Id" + "/properties/RegistryArn" ], "properties": { "Description": { - "type": "string" - }, - "Id": { + "description": "A description of the registry to be created.", "type": "string" }, "RegistryArn": { + "description": "The ARN of the registry.", "type": "string" }, "RegistryName": { + "description": "The name of the schema registry.", "type": "string" }, "Tags": { + "description": "Tags associated with the resource.", "items": { "$ref": "#/definitions/TagsEntry" }, @@ -47,8 +82,14 @@ } }, "readOnlyProperties": [ - "/properties/RegistryArn", - "/properties/Id" + "/properties/RegistryArn" ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, "typeName": "AWS::EventSchemas::Registry" } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-eventschemas-schema.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-eventschemas-schema.json index a886624c7c..db827f8fa4 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-eventschemas-schema.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-eventschemas-schema.json @@ -23,32 +23,86 @@ } }, "description": "Resource Type definition for AWS::EventSchemas::Schema", + "handlers": { + "create": { + "permissions": [ + "schemas:DescribeSchema", + "schemas:CreateSchema", + "schemas:TagResource" + ] + }, + "delete": { + "permissions": [ + "schemas:DescribeSchema", + "schemas:DeleteSchema", + "schemas:DeleteSchemaVersion" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "RegistryName": { + "type": "string" + } + }, + "required": [ + "RegistryName" + ] + }, + "permissions": [ + "schemas:ListSchemas", + "schemas:ListSchemaVersions" + ] + }, + "read": { + "permissions": [ + "schemas:DescribeSchema" + ] + }, + "update": { + "permissions": [ + "schemas:DescribeSchema", + "schemas:UpdateSchema", + "schemas:TagResource", + "schemas:UntagResource", + "schemas:ListTagsForResource" + ] + } + }, "primaryIdentifier": [ - "/properties/Id" + "/properties/SchemaArn" ], "properties": { "Content": { + "description": "The source of the schema definition.", "type": "string" }, "Description": { + "description": "A description of the schema.", "type": "string" }, - "Id": { + "LastModified": { + "description": "The last modified time of the schema.", "type": "string" }, "RegistryName": { + "description": "The name of the schema registry.", "type": "string" }, "SchemaArn": { + "description": "The ARN of the schema.", "type": "string" }, "SchemaName": { + "description": "The name of the schema.", "type": "string" }, "SchemaVersion": { + "description": "The version number of the schema.", "type": "string" }, "Tags": { + "description": "Tags associated with the resource.", "items": { "$ref": "#/definitions/TagsEntry" }, @@ -56,18 +110,32 @@ "uniqueItems": false }, "Type": { + "description": "The type of schema. Valid types include OpenApi3 and JSONSchemaDraft4.", + "type": "string" + }, + "VersionCreatedDate": { + "description": "The date the schema version was created.", "type": "string" } }, "readOnlyProperties": [ - "/properties/Id", - "/properties/SchemaVersion", - "/properties/SchemaArn" + "/properties/SchemaArn", + "/properties/LastModified", + "/properties/VersionCreatedDate", + "/properties/SchemaVersion" ], "required": [ "Type", "Content", "RegistryName" ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-eventschemas", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, "typeName": "AWS::EventSchemas::Schema" } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-fis-experimenttemplate.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-fis-experimenttemplate.json index 78b81c50a0..44471088cb 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-fis-experimenttemplate.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-fis-experimenttemplate.json @@ -1,7 +1,8 @@ { "additionalProperties": false, "createOnlyProperties": [ - "/properties/Tags" + "/properties/Tags", + "/properties/ExperimentOptions/AccountTargeting" ], "definitions": { "ActionId": { @@ -87,6 +88,28 @@ "maxLength": 512, "type": "string" }, + "ExperimentTemplateExperimentOptions": { + "additionalProperties": false, + "properties": { + "AccountTargeting": { + "description": "The account targeting setting for the experiment template.", + "enum": [ + "multi-account", + "single-account" + ], + "type": "string" + }, + "EmptyTargetResolutionMode": { + "description": "The target resolution failure mode for the experiment template.", + "enum": [ + "fail", + "skip" + ], + "type": "string" + } + }, + "type": "object" + }, "ExperimentTemplateId": { "type": "string" }, @@ -332,6 +355,9 @@ "Description": { "$ref": "#/definitions/ExperimentTemplateDescription" }, + "ExperimentOptions": { + "$ref": "#/definitions/ExperimentTemplateExperimentOptions" + }, "Id": { "$ref": "#/definitions/ExperimentTemplateId" }, diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-fis-targetaccountconfiguration.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-fis-targetaccountconfiguration.json similarity index 100% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-fis-targetaccountconfiguration.json rename to src/cfnlint/data/schemas/providers/us_east_1/aws-fis-targetaccountconfiguration.json diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-fsx-datarepositoryassociation.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-fsx-datarepositoryassociation.json index 2eebaab0d5..38eb5ca608 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-fsx-datarepositoryassociation.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-fsx-datarepositoryassociation.json @@ -204,6 +204,7 @@ "tagging": { "cloudFormationSystemTags": true, "tagOnCreate": true, + "tagProperty": "/properties/Tags", "tagUpdatable": true, "taggable": true }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-gamelift-fleet.json index a0ba704718..fbafb4c65a 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-gamelift-fleet.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-gamelift-fleet.json @@ -2,6 +2,7 @@ "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", "additionalProperties": false, "createOnlyProperties": [ + "/properties/ApplyCapacity", "/properties/BuildId", "/properties/CertificateConfiguration", "/properties/EC2InstanceType", @@ -398,6 +399,14 @@ "$ref": "#/definitions/AnywhereConfiguration", "description": "Configuration for Anywhere fleet." }, + "ApplyCapacity": { + "description": "ComputeType to differentiate EC2 hardware managed by GameLift and Anywhere hardware managed by the customer.", + "enum": [ + "ON_UPDATE", + "ON_CREATE_AND_UPDATE" + ], + "type": "string" + }, "BuildId": { "description": "A unique identifier for a build to be deployed on the new fleet. If you are deploying the fleet with a custom game build, you must specify this property. The build must have been successfully uploaded to Amazon GameLift and be in a READY status. This fleet setting cannot be changed once the fleet is created.", "pattern": "^build-\\S+|^arn:.*:build/build-\\S+", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-identitystore-groupmembership.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-identitystore-groupmembership.json index 3b44442f3e..938f08be05 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-identitystore-groupmembership.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-identitystore-groupmembership.json @@ -1,7 +1,9 @@ { "additionalProperties": false, "createOnlyProperties": [ - "/properties/IdentityStoreId" + "/properties/IdentityStoreId", + "/properties/GroupId", + "/properties/MemberId" ], "definitions": { "MemberId": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-kinesisfirehose-deliverystream.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-kinesisfirehose-deliverystream.json index 2e940c3ffd..1b5bef8233 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-kinesisfirehose-deliverystream.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-kinesisfirehose-deliverystream.json @@ -829,6 +829,7 @@ "Type": { "enum": [ "RecordDeAggregation", + "Decompression", "Lambda", "MetadataExtraction", "AppendDelimiterToRecord" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-eventinvokeconfig.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-eventinvokeconfig.json index 7062267808..5fd15d04f8 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-eventinvokeconfig.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-eventinvokeconfig.json @@ -7,6 +7,7 @@ "definitions": { "DestinationConfig": { "additionalProperties": false, + "description": "A destination for events after they have been sent to a function for processing.", "properties": { "OnFailure": { "$ref": "#/definitions/OnFailure" @@ -19,8 +20,13 @@ }, "OnFailure": { "additionalProperties": false, + "description": "The destination configuration for failed invocations.", "properties": { "Destination": { + "description": "The Amazon Resource Name (ARN) of the destination resource.", + "maxLength": 350, + "minLength": 0, + "pattern": "^$|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)", "type": "string" } }, @@ -31,8 +37,13 @@ }, "OnSuccess": { "additionalProperties": false, + "description": "The destination configuration for successful invocations.", "properties": { "Destination": { + "description": "The Amazon Resource Name (ARN) of the destination resource.", + "maxLength": 350, + "minLength": 0, + "pattern": "^$|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)", "type": "string" } }, @@ -42,36 +53,85 @@ "type": "object" } }, - "description": "Resource Type definition for AWS::Lambda::EventInvokeConfig", + "description": "The AWS::Lambda::EventInvokeConfig resource configures options for asynchronous invocation on a version or an alias.", + "handlers": { + "create": { + "permissions": [ + "lambda:PutFunctionEventInvokeConfig" + ] + }, + "delete": { + "permissions": [ + "lambda:DeleteFunctionEventInvokeConfig" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "FunctionName": { + "$ref": "resource-schema.json#/properties/FunctionName" + } + }, + "required": [ + "FunctionName" + ] + }, + "permissions": [ + "lambda:ListFunctionEventInvokeConfigs" + ] + }, + "read": { + "permissions": [ + "lambda:GetFunctionEventInvokeConfig" + ] + }, + "update": { + "permissions": [ + "lambda:UpdateFunctionEventInvokeConfig" + ] + } + }, "primaryIdentifier": [ - "/properties/Id" + "/properties/FunctionName", + "/properties/Qualifier" ], "properties": { "DestinationConfig": { "$ref": "#/definitions/DestinationConfig" }, "FunctionName": { - "type": "string" - }, - "Id": { + "description": "The name of the Lambda function.", + "pattern": "^(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", "type": "string" }, "MaximumEventAgeInSeconds": { + "description": "The maximum age of a request that Lambda sends to a function for processing.", + "maximum": 21600, + "minimum": 60, "type": "integer" }, "MaximumRetryAttempts": { + "description": "The maximum number of times to retry when the function returns an error.", + "maximum": 2, + "minimum": 0, "type": "integer" }, "Qualifier": { + "description": "The identifier of a version or alias.", + "pattern": "^(|[a-zA-Z0-9$_-]{1,129})$", "type": "string" } }, - "readOnlyProperties": [ - "/properties/Id" - ], "required": [ "FunctionName", "Qualifier" ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, "typeName": "AWS::Lambda::EventInvokeConfig" } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-function.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-function.json index 486712593c..eef62c32fd 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-function.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-function.json @@ -502,10 +502,6 @@ ], "type": "string" }, - "Policy": { - "description": "The resource policy of your function", - "type": "object" - }, "ReservedConcurrentExecutions": { "description": "The number of simultaneous executions to reserve for the function.", "minimum": 0, @@ -618,7 +614,6 @@ "/properties/Code/S3Bucket", "/properties/Code/S3Key", "/properties/Code/S3ObjectVersion", - "/properties/Code/ZipFile", - "/properties/Policy" + "/properties/Code/ZipFile" ] } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-medialive-channel.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-medialive-channel.json index bde856b77c..d5a7dd8e34 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-medialive-channel.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-medialive-channel.json @@ -983,6 +983,18 @@ }, "type": "object" }, + "EpochLockingSettings": { + "additionalProperties": false, + "properties": { + "CustomEpoch": { + "type": "string" + }, + "JamSyncTime": { + "type": "string" + } + }, + "type": "object" + }, "Esam": { "additionalProperties": false, "properties": { @@ -1036,6 +1048,9 @@ "properties": { "InputPrepareScheduleActions": { "type": "string" + }, + "OutputStaticImageOverlayScheduleActions": { + "type": "string" } }, "type": "object" @@ -1143,6 +1158,9 @@ "OutputLockingMode": { "type": "string" }, + "OutputLockingSettings": { + "$ref": "#/definitions/OutputLockingSettings" + }, "OutputTimingSource": { "type": "string" }, @@ -2562,6 +2580,18 @@ }, "type": "object" }, + "OutputLockingSettings": { + "additionalProperties": false, + "properties": { + "EpochLockingSettings": { + "$ref": "#/definitions/EpochLockingSettings" + }, + "PipelineLockingSettings": { + "$ref": "#/definitions/PipelineLockingSettings" + } + }, + "type": "object" + }, "OutputSettings": { "additionalProperties": false, "properties": { @@ -2596,6 +2626,10 @@ "additionalProperties": false, "type": "object" }, + "PipelineLockingSettings": { + "additionalProperties": false, + "type": "object" + }, "RawSettings": { "additionalProperties": false, "type": "object" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-memorydb-acl.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-memorydb-acl.json index 3ce0f36aa9..cef6cec217 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-memorydb-acl.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-memorydb-acl.json @@ -35,6 +35,7 @@ "permissions": [ "memorydb:CreateACL", "memorydb:DescribeACLs", + "memorydb:TagResource", "memorydb:ListTags" ] }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-memorydb-parametergroup.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-memorydb-parametergroup.json index 7cbed3e832..ed84a0204e 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-memorydb-parametergroup.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-memorydb-parametergroup.json @@ -38,6 +38,7 @@ "permissions": [ "memorydb:CreateParameterGroup", "memorydb:DescribeParameterGroups", + "memorydb:TagResource", "memorydb:ListTags" ] }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-memorydb-subnetgroup.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-memorydb-subnetgroup.json index b0145dd1a0..7a6449202d 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-memorydb-subnetgroup.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-memorydb-subnetgroup.json @@ -36,6 +36,7 @@ "permissions": [ "memorydb:CreateSubnetGroup", "memorydb:DescribeSubnetGroups", + "memorydb:TagResource", "memorydb:ListTags" ] }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-memorydb-user.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-memorydb-user.json index cd4bd13732..406f6e99f7 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-memorydb-user.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-memorydb-user.json @@ -35,6 +35,7 @@ "permissions": [ "memorydb:CreateUser", "memorydb:DescribeUsers", + "memorydb:TagResource", "memorydb:ListTags" ] }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchservice-domain.json index 43112af1b9..f2a475f8a8 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchservice-domain.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-opensearchservice-domain.json @@ -438,6 +438,9 @@ "DomainEndpointOptions": { "$ref": "#/definitions/DomainEndpointOptions" }, + "DomainEndpointV2": { + "type": "string" + }, "DomainEndpoints": { "additionalProperties": false, "patternProperties": { @@ -459,6 +462,9 @@ "EngineVersion": { "type": "string" }, + "IPAddressType": { + "type": "string" + }, "Id": { "type": "string" }, @@ -503,6 +509,7 @@ "/properties/Arn", "/properties/DomainArn", "/properties/DomainEndpoint", + "/properties/DomainEndpointV2", "/properties/DomainEndpoints", "/properties/ServiceSoftwareOptions", "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-osis-pipeline.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-osis-pipeline.json index 0a64999573..51de9f931a 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-osis-pipeline.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-osis-pipeline.json @@ -4,6 +4,34 @@ "/properties/PipelineName" ], "definitions": { + "BufferOptions": { + "additionalProperties": false, + "description": "Key-value pairs to configure buffering.", + "properties": { + "PersistentBufferEnabled": { + "description": "Whether persistent buffering should be enabled.", + "type": "boolean" + } + }, + "required": [ + "PersistentBufferEnabled" + ], + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "description": "Key-value pairs to configure encryption at rest.", + "properties": { + "KmsKeyArn": { + "description": "The KMS key to use for encrypting data. By default an AWS owned key is used", + "type": "string" + } + }, + "required": [ + "KmsKeyArn" + ], + "type": "object" + }, "LogPublishingOptions": { "additionalProperties": false, "description": "Key-value pairs to configure log publishing.", @@ -19,6 +47,9 @@ "type": "string" } }, + "required": [ + "LogGroup" + ], "type": "object" }, "IsLoggingEnabled": { @@ -96,6 +127,9 @@ "type": "array" } }, + "required": [ + "SubnetIds" + ], "type": "object" } }, @@ -105,14 +139,21 @@ "permissions": [ "osis:CreatePipeline", "osis:GetPipeline", + "osis:TagResource", "osis:ListTagsForResource", "iam:PassRole", - "iam:CreateServiceLinkedRole" + "iam:CreateServiceLinkedRole", + "logs:CreateLogDelivery", + "kms:DescribeKey" ] }, "delete": { "permissions": [ - "osis:DeletePipeline" + "osis:DeletePipeline", + "osis:GetPipeline", + "logs:GetLogDelivery", + "logs:DeleteLogDelivery", + "logs:ListLogDeliveries" ] }, "list": { @@ -129,10 +170,15 @@ "update": { "permissions": [ "osis:UpdatePipeline", + "osis:GetPipeline", "osis:ListTagsForResource", "osis:TagResource", "osis:UntagResource", - "iam:PassRole" + "iam:PassRole", + "logs:GetLogDelivery", + "logs:UpdateLogDelivery", + "logs:ListLogDeliveries", + "kms:DescribeKey" ] } }, @@ -140,6 +186,12 @@ "/properties/PipelineArn" ], "properties": { + "BufferOptions": { + "$ref": "#/definitions/BufferOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, "IngestEndpointUrls": { "description": "A list of endpoints that can be used for ingesting data into a pipeline", "insertionOrder": false, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-rds-dbcluster.json index 9a18b7d8e4..173360f5fb 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-rds-dbcluster.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-rds-dbcluster.json @@ -192,6 +192,7 @@ }, "delete": { "permissions": [ + "rds:CreateDBClusterSnapshot", "rds:DeleteDBCluster", "rds:DeleteDBInstance", "rds:DescribeDBClusters", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-rds-dbinstance.json index 4c2f423ae2..f44c52af2d 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-rds-dbinstance.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-rds-dbinstance.json @@ -197,6 +197,7 @@ }, "delete": { "permissions": [ + "rds:CreateDBSnapshot", "rds:DeleteDBInstance", "rds:DescribeDBInstances" ], diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-resourceexplorer2-index.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-resourceexplorer2-index.json index 7176b8b7ae..dc60d293ae 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-resourceexplorer2-index.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-resourceexplorer2-index.json @@ -36,7 +36,8 @@ "resource-explorer-2:GetIndex", "resource-explorer-2:TagResource", "resource-explorer-2:UpdateIndexType", - "resource-explorer-2:DeleteIndex" + "resource-explorer-2:DeleteIndex", + "iam:CreateServiceLinkedRole" ] }, "delete": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-route53resolver-resolverconfig.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-route53resolver-resolverconfig.json index 43751b2002..aee12f4e22 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-route53resolver-resolverconfig.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-route53resolver-resolverconfig.json @@ -8,27 +8,33 @@ "handlers": { "create": { "permissions": [ - "route53resolver:CreateConfig" + "route53resolver:UpdateResolverConfig", + "route53resolver:GetResolverConfig", + "ec2:DescribeVpcs" ] }, "delete": { "permissions": [ - "route53resolver:DeleteConfig" + "route53resolver:UpdateResolverConfig", + "route53resolver:ListResolverConfigs", + "ec2:DescribeVpcs" ] }, "list": { "permissions": [ - "route53resolver:ListConfig" + "route53resolver:ListResolverConfigs", + "ec2:DescribeVpcs" ] }, "read": { "permissions": [ - "route53resolver:GetConfig" + "route53resolver:GetResolverConfig", + "ec2:DescribeVpcs" ] } }, "primaryIdentifier": [ - "/properties/Id" + "/properties/ResourceId" ], "properties": { "AutodefinedReverse": { @@ -67,6 +73,9 @@ "type": "string" } }, + "propertyTransform": { + "/properties/AutodefinedReverseFlag": "$join([AutodefinedReverseFlag, \"D\"])" + }, "readOnlyProperties": [ "/properties/OwnerId", "/properties/Id", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-s3express-directorybucket.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-s3express-directorybucket.json index cc45e847d6..9cdadf426f 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-s3express-directorybucket.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-s3express-directorybucket.json @@ -44,17 +44,17 @@ "$ref": "#/definitions/Arn", "description": "Returns the Amazon Resource Name (ARN) of the specified bucket.", "examples": [ - "arn:aws:s3express:us-west-2:123456789123:bucket/DOC-EXAMPLE-BUCKET--usw2-az2--x-s3" + "arn:aws:s3express:us-west-2:123456789123:bucket/DOC-EXAMPLE-BUCKET--usw2-az1--x-s3" ] }, "BucketName": { - "description": "Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, dots (.), and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format 'bucket_base_name--az_id--x-s3' (for example, 'DOC-EXAMPLE-BUCKET--usw2-az2--x-s3'). If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", + "description": "Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format 'bucket_base_name--az_id--x-s3' (for example, 'DOC-EXAMPLE-BUCKET--usw2-az1--x-s3'). If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", "maxLength": 63, "pattern": "^[a-z0-9][a-z0-9//.//-]*[a-z0-9]$", "type": "string" }, "DataRedundancy": { - "description": "Specifies the number of Avilability Zone that's used for redundancy for the bucket.", + "description": "Specifies the number of Availability Zone that's used for redundancy for the bucket.", "enum": [ "SingleAvailabilityZone" ], diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-app.json index da6e3f4330..9dd1feabc4 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-app.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-app.json @@ -74,7 +74,10 @@ "ml.g5.48xlarge", "ml.p4d.24xlarge", "ml.p4de.24xlarge", - "ml.geospatial.interactive" + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" ], "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-domain.json index 1948e2768f..3599972fb9 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-domain.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-domain.json @@ -1,16 +1,59 @@ { "additionalProperties": false, "createOnlyProperties": [ - "/properties/AppNetworkAccessType", "/properties/AuthMode", "/properties/DomainName", "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", "/properties/KmsKeyId", - "/properties/SubnetIds", "/properties/VpcId", "/properties/Tags" ], "definitions": { + "CodeEditorAppSettings": { + "additionalProperties": false, + "description": "The CodeEditor app settings.", + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec", + "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app." + }, + "LifecycleConfigArns": { + "description": "A list of LifecycleConfigArns available for use with CodeEditor apps.", + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "description": "A CodeRepository (valid URL) to be used within Jupyter's Git extension.", + "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, "description": "A custom SageMaker image.", @@ -39,6 +82,45 @@ ], "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, + "description": "Properties related to the Amazon Elastic Block Store volume. Must be provided if storage type is Amazon EBS and must not be provided if storage type is not Amazon EBS", + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb", + "description": "Default size of the Amazon EBS volume in Gb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb", + "description": "Maximum size of the Amazon EBS volume in Gb. Must be greater than or equal to the DefaultEbsVolumeSizeInGb." + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, "DefaultSpaceSettings": { "additionalProperties": false, "description": "A collection of settings that apply to spaces of Amazon SageMaker Studio. These settings are specified when the Create/Update Domain API is called.", @@ -77,6 +159,16 @@ ], "type": "object" }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "description": "Default storage settings for a space.", + "properties": { + "DefaultEbsStorageSettings": { + "$ref": "#/definitions/DefaultEbsStorageSettings" + } + }, + "type": "object" + }, "DomainSettings": { "additionalProperties": false, "description": "A collection of Domain settings.", @@ -100,6 +192,68 @@ }, "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, + "description": "The JupyterLab app settings.", + "properties": { + "CodeRepositories": { + "description": "A list of CodeRepositories available for use with JupyterLab apps.", + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "description": "A list of custom images for use for JupyterLab apps.", + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec", + "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterLab app." + }, + "LifecycleConfigArns": { + "description": "A list of LifecycleConfigArns available for use with JupyterLab apps.", + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, "JupyterServerAppSettings": { "additionalProperties": false, "description": "The JupyterServer app settings.", @@ -271,7 +425,10 @@ "ml.g5.48xlarge", "ml.p4d.24xlarge", "ml.p4de.24xlarge", - "ml.geospatial.interactive" + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" ], "type": "string" }, @@ -323,6 +480,17 @@ }, "type": "object" }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, "Tag": { "additionalProperties": false, "properties": { @@ -347,6 +515,26 @@ "additionalProperties": false, "description": "A collection of settings that apply to users of Amazon SageMaker Studio. These settings are specified when the CreateUserProfile API is called, and as DefaultUserSettings when the CreateDomain API is called.", "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "description": "Defines which Amazon SageMaker application users are directed to by default.", + "maxLength": 1023, + "type": "string" + }, "ExecutionRole": { "description": "The execution role for the user.", "maxLength": 2048, @@ -354,6 +542,9 @@ "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", "type": "string" }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, "JupyterServerAppSettings": { "$ref": "#/definitions/JupyterServerAppSettings", "description": "The Jupyter server's app settings." @@ -384,6 +575,17 @@ "SharingSettings": { "$ref": "#/definitions/SharingSettings", "description": "The sharing settings." + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "description": "Indicates whether the Studio experience is available to users. If not, users cannot access Studio.", + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" } }, "required": [ @@ -512,6 +714,11 @@ "pattern": "[-0-9a-zA-Z]+", "type": "string" }, + "SingleSignOnApplicationArn": { + "description": "The ARN of the application managed by SageMaker in IAM Identity Center. This value is only returned for domains created after October 1, 2023.", + "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": { "description": "The SSO managed application instance ID.", "maxLength": 256, @@ -559,7 +766,8 @@ "/properties/DomainId", "/properties/HomeEfsFileSystemId", "/properties/SecurityGroupIdForDomainBoundary", - "/properties/SingleSignOnManagedApplicationInstanceId" + "/properties/SingleSignOnManagedApplicationInstanceId", + "/properties/SingleSignOnApplicationArn" ], "required": [ "AuthMode", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-featuregroup.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-featuregroup.json index 72e6d38628..f89a2a7f80 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-featuregroup.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-featuregroup.json @@ -91,6 +91,13 @@ ], "type": "object" }, + "StorageType": { + "enum": [ + "Standard", + "InMemory" + ], + "type": "string" + }, "TableFormat": { "description": "Format for the offline store feature group. Iceberg is the optimal format for feature groups shared between offline and online stores.", "enum": [ @@ -183,6 +190,7 @@ }, "FeatureDefinitions": { "description": "An Array of Feature Definition", + "insertionOrder": false, "items": { "$ref": "#/definitions/FeatureDefinition" }, @@ -231,6 +239,9 @@ }, "SecurityConfig": { "$ref": "#/definitions/OnlineStoreSecurityConfig" + }, + "StorageType": { + "$ref": "#/definitions/StorageType" } }, "type": "object" @@ -251,6 +262,7 @@ }, "Tags": { "description": "An array of key-value pair to apply to this resource.", + "insertionOrder": false, "items": { "$ref": "#/definitions/Tag" }, @@ -269,5 +281,12 @@ "EventTimeFeatureName", "FeatureDefinitions" ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": false, + "taggable": true + }, "typeName": "AWS::SageMaker::FeatureGroup" } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-userprofile.json index 8d20becfab..6f146f1ba2 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-userprofile.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-sagemaker-userprofile.json @@ -10,6 +10,51 @@ "/properties/Tags" ], "definitions": { + "CodeEditorAppSettings": { + "additionalProperties": false, + "description": "The CodeEditor app settings.", + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec", + "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app." + }, + "LifecycleConfigArns": { + "description": "A list of LifecycleConfigArns available for use with CodeEditor apps.", + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "CodeRepository": { + "additionalProperties": false, + "properties": { + "RepositoryUrl": { + "description": "A CodeRepository (valid URL) to be used within Jupyter's Git extension.", + "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, "description": "A custom SageMaker image.", @@ -38,6 +83,117 @@ ], "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, + "description": "Properties related to the Amazon Elastic Block Store volume.", + "properties": { + "DefaultEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb", + "description": "Default size of the Amazon EBS volume in Gb" + }, + "MaximumEbsVolumeSizeInGb": { + "$ref": "#/definitions/SpaceEbsVolumeSizeInGb", + "description": "Maximum size of the Amazon EBS volume in Gb. Must be greater than or equal to the DefaultEbsVolumeSizeInGb." + } + }, + "required": [ + "DefaultEbsVolumeSizeInGb", + "MaximumEbsVolumeSizeInGb" + ], + "type": "object" + }, + "DefaultSpaceStorageSettings": { + "additionalProperties": false, + "description": "Default storage settings for a space.", + "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, + "description": "The JupyterLab app settings.", + "properties": { + "CodeRepositories": { + "description": "A list of CodeRepositories available for use with JupyterLab apps.", + "items": { + "$ref": "#/definitions/CodeRepository" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "CustomImages": { + "description": "A list of custom images available for use for JupyterLab apps", + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec", + "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterLab app." + }, + "LifecycleConfigArns": { + "description": "A list of LifecycleConfigArns available for use with JupyterLab apps.", + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, "JupyterServerAppSettings": { "additionalProperties": false, "description": "The JupyterServer app settings.", @@ -157,7 +313,10 @@ "ml.g5.48xlarge", "ml.p4d.24xlarge", "ml.p4de.24xlarge", - "ml.geospatial.interactive" + "ml.geospatial.interactive", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge" ], "type": "string" }, @@ -203,6 +362,17 @@ }, "type": "object" }, + "SpaceEbsVolumeSizeInGb": { + "maximum": 16384, + "minimum": 5, + "type": "integer" + }, + "StudioLifecycleConfigArn": { + "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, "Tag": { "additionalProperties": false, "properties": { @@ -227,6 +397,26 @@ "additionalProperties": false, "description": "A collection of settings that apply to users of Amazon SageMaker Studio. These settings are specified when the CreateUserProfile API is called, and as DefaultUserSettings when the CreateDomain API is called.", "properties": { + "CodeEditorAppSettings": { + "$ref": "#/definitions/CodeEditorAppSettings" + }, + "CustomFileSystemConfigs": { + "items": { + "$ref": "#/definitions/CustomFileSystemConfig" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "CustomPosixUserConfig": { + "$ref": "#/definitions/CustomPosixUserConfig" + }, + "DefaultLandingUri": { + "description": "Defines which Amazon SageMaker application users are directed to by default.", + "maxLength": 1023, + "type": "string" + }, "ExecutionRole": { "description": "The user profile Amazon Resource Name (ARN).", "maxLength": 2048, @@ -234,6 +424,9 @@ "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", "type": "string" }, + "JupyterLabAppSettings": { + "$ref": "#/definitions/JupyterLabAppSettings" + }, "JupyterServerAppSettings": { "$ref": "#/definitions/JupyterServerAppSettings", "description": "The Jupyter server's app settings." @@ -260,6 +453,17 @@ "SharingSettings": { "$ref": "#/definitions/SharingSettings", "description": "The sharing settings." + }, + "SpaceStorageSettings": { + "$ref": "#/definitions/DefaultSpaceStorageSettings" + }, + "StudioWebPortal": { + "description": "Indicates whether the Studio experience is available to users. If not, users cannot access Studio.", + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" } }, "type": "object" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-securityhub-hub.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-securityhub-hub.json index b0401a5225..fb6bec6ad5 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-securityhub-hub.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-securityhub-hub.json @@ -1,28 +1,101 @@ { "additionalProperties": false, - "description": "Resource Type definition for AWS::SecurityHub::Hub", + "definitions": { + "Tags": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "patternProperties": { + "^[a-zA-Z0-9-_]{1,128}$": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + } + }, + "description": "The AWS::SecurityHub::Hub resource represents the implementation of the AWS Security Hub service in your account. One hub resource is created for each Region in which you enable Security Hub.\n\n", + "handlers": { + "create": { + "permissions": [ + "securityhub:EnableSecurityHub", + "securityhub:UpdateSecurityHubConfiguration", + "securityhub:TagResource", + "securityhub:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "securityhub:DisableSecurityHub" + ] + }, + "list": { + "permissions": [ + "securityhub:DescribeHub", + "securityhub:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "securityhub:DescribeHub", + "securityhub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "securityhub:DescribeHub", + "securityhub:UpdateSecurityHubConfiguration", + "securityhub:TagResource", + "securityhub:UntagResource", + "securityhub:ListTagsForResource" + ] + } + }, "primaryIdentifier": [ - "/properties/Id" + "/properties/ARN" ], "properties": { + "ARN": { + "description": "An ARN is automatically created for the customer.", + "pattern": "^arn:.*", + "type": "string" + }, "AutoEnableControls": { + "description": "Whether to automatically enable new controls when they are added to standards that are enabled", "type": "boolean" }, "ControlFindingGenerator": { + "description": "This field, used when enabling Security Hub, specifies whether the calling account has consolidated control findings turned on. If the value for this field is set to SECURITY_CONTROL, Security Hub generates a single finding for a control check even when the check applies to multiple enabled standards. If the value for this field is set to STANDARD_CONTROL, Security Hub generates separate findings for a control check when the check applies to multiple enabled standards.", + "pattern": "^(SECURITY_CONTROL|STANDARD_CONTROL)$", "type": "string" }, "EnableDefaultStandards": { + "description": "Whether to enable the security standards that Security Hub has designated as automatically enabled.", "type": "boolean" }, - "Id": { + "SubscribedAt": { + "description": "The date and time when Security Hub was enabled in the account.", "type": "string" }, "Tags": { - "type": "object" + "$ref": "#/definitions/Tags" } }, "readOnlyProperties": [ - "/properties/Id" + "/properties/ARN", + "/properties/SubscribedAt" ], - "typeName": "AWS::SecurityHub::Hub" + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SecurityHub::Hub", + "writeOnlyProperties": [ + "/properties/EnableDefaultStandards" + ] } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-servicecatalogappregistry-application.json index b04a7d7289..5db39636a3 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-servicecatalogappregistry-application.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-servicecatalogappregistry-application.json @@ -58,6 +58,25 @@ "/properties/Id" ], "properties": { + "ApplicationName": { + "description": "The name of the application. ", + "maxLength": 256, + "minLength": 1, + "pattern": "\\w+", + "type": "string" + }, + "ApplicationTagKey": { + "description": "The key of the AWS application tag, which is awsApplication. Applications created before 11/13/2023 or applications without the AWS application tag resource group return no value.", + "maxLength": 128, + "pattern": "\\w+", + "type": "string" + }, + "ApplicationTagValue": { + "description": "The value of the AWS application tag, which is the identifier of an associated resource. Applications created before 11/13/2023 or applications without the AWS application tag resource group return no value. ", + "maxLength": 256, + "pattern": "\\[a-zA-Z0-9_-:/]+", + "type": "string" + }, "Arn": { "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", "type": "string" @@ -84,7 +103,10 @@ }, "readOnlyProperties": [ "/properties/Id", - "/properties/Arn" + "/properties/Arn", + "/properties/ApplicationName", + "/properties/ApplicationTagKey", + "/properties/ApplicationTagValue" ], "required": [ "Name" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-signer-signingprofile.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-signer-signingprofile.json index eb22519dd2..e796c48425 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-signer-signingprofile.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-signer-signingprofile.json @@ -14,7 +14,7 @@ ], "definitions": { "Arn": { - "pattern": "^arn:aws(-(cn|gov))?:[a-z-]+:(([a-z]+-)+[0-9])?:([0-9]{12})?:[^.]+$", + "pattern": "^arn:aws(-(cn|us-gov))?:[a-z-]+:(([a-z]+-)+[0-9])?:([0-9]{12})?:[^.]+$", "type": "string" }, "PlatformId": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-sns-subscription.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-sns-subscription.json index 9417857546..12a38b67a2 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-sns-subscription.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-sns-subscription.json @@ -37,6 +37,9 @@ "Region": { "type": "string" }, + "ReplayPolicy": { + "type": "object" + }, "SubscriptionRoleArn": { "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-sns-topic.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-sns-topic.json index 8a5952f66b..068aa8f1e5 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-sns-topic.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-sns-topic.json @@ -7,23 +7,6 @@ "definitions": { "LoggingConfig": { "additionalProperties": false, - "anyOf": [ - { - "required": [ - "SuccessFeedbackRoleArn" - ] - }, - { - "required": [ - "SuccessFeedbackSampleRate" - ] - }, - { - "required": [ - "FailureFeedbackRoleArn" - ] - } - ], "properties": { "FailureFeedbackRoleArn": { "description": "The IAM role ARN to be used when logging failed message deliveries in Amazon CloudWatch", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ssm-association.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ssm-association.json index 827a9a5d93..e918f4321d 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ssm-association.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ssm-association.json @@ -74,8 +74,10 @@ "permissions": [ "ec2:DescribeInstanceStatus", "iam:PassRole", + "iam:CreateServiceLinkedRole", "ssm:CreateAssociation", - "ssm:DescribeAssociation" + "ssm:DescribeAssociation", + "ssm:GetCalendarState" ] }, "delete": { @@ -99,7 +101,8 @@ "update": { "permissions": [ "iam:PassRole", - "ssm:UpdateAssociation" + "ssm:UpdateAssociation", + "ssm:GetCalendarState" ] } }, @@ -259,5 +262,8 @@ "tagging": { "taggable": false }, - "typeName": "AWS::SSM::Association" + "typeName": "AWS::SSM::Association", + "writeOnlyProperties": [ + "/properties/WaitForSuccessTimeoutSeconds" + ] } diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-workspacesthinclient-environment.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-workspacesthinclient-environment.json similarity index 100% rename from src/cfnlint/data/schemas/providers/ap_south_1/aws-workspacesthinclient-environment.json rename to src/cfnlint/data/schemas/providers/us_east_1/aws-workspacesthinclient-environment.json diff --git a/src/cfnlint/data/schemas/providers/us_east_2/__init__.py b/src/cfnlint/data/schemas/providers/us_east_2/__init__.py index 68d7bd4f38..97f1246c00 100644 --- a/src/cfnlint/data/schemas/providers/us_east_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_east_2/__init__.py @@ -6,6 +6,7 @@ "AWS::CleanRooms::ConfiguredTableAssociation", "AWS::ApiGatewayV2::Integration", "AWS::ApiGatewayV2::ApiMapping", + "AWS::CE::AnomalySubscription", "AWS::Shield::DRTAccess", "AWS::SSO::Assignment", "AWS::Glue::Partition", @@ -61,6 +62,7 @@ "AWS::Budgets::BudgetsAction", "AWS::Logs::ResourcePolicy", "AWS::ServiceCatalog::LaunchNotificationConstraint", + "AWS::DMS::InstanceProfile", "AWS::OpenSearchServerless::VpcEndpoint", "AWS::QuickSight::DataSource", "AWS::IoT::CACertificate", @@ -277,6 +279,7 @@ "AWS::GuardDuty::Member", "AWS::GroundStation::MissionProfile", "AWS::CloudFormation::CustomResource", + "AWS::FIS::TargetAccountConfiguration", "AWS::RefactorSpaces::Route", "AWS::KinesisAnalytics::ApplicationOutput", "AWS::WAFv2::RuleGroup", @@ -326,6 +329,7 @@ "AWS::RoboMaker::RobotApplicationVersion", "AWS::AppStream::AppBlock", "AWS::Shield::Protection", + "AWS::B2BI::Transformer", "AWS::SES::VdmAttributes", "AWS::IdentityStore::GroupMembership", "AWS::AppSync::FunctionConfiguration", @@ -455,6 +459,7 @@ "AWS::IoT::SoftwarePackageVersion", "AWS::EC2::NetworkInsightsAnalysis", "AWS::EC2::ClientVpnRoute", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::AppSync::ApiKey", "AWS::CloudFormation::TypeActivation", @@ -488,6 +493,7 @@ "AWS::Kinesis::Stream", "AWS::Greengrass::CoreDefinition", "AWS::Backup::ReportPlan", + "AWS::B2BI::Capability", "AWS::Batch::JobDefinition", "AWS::IAM::SAMLProvider", "AWS::Lightsail::Database", @@ -548,6 +554,7 @@ "AWS::ServiceCatalog::AcceptedPortfolioShare", "AWS::Route53Resolver::FirewallRuleGroupAssociation", "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", "AWS::EC2::Subnet", "AWS::CloudTrail::ResourcePolicy", "AWS::S3ObjectLambda::AccessPoint", @@ -717,6 +724,7 @@ "AWS::CloudWatch::AnomalyDetector", "AWS::EC2::SubnetNetworkAclAssociation", "AWS::ServiceCatalog::ServiceAction", + "AWS::DMS::MigrationProject", "AWS::AppStream::Entitlement", "AWS::IAM::UserPolicy", "AWS::CloudFront::OriginAccessControl", @@ -792,6 +800,7 @@ "AWS::ElasticLoadBalancingV2::TrustStore", "AWS::Glue::Registry", "AWS::EC2::KeyPair", + "AWS::B2BI::Profile", "AWS::FSx::FileSystem", "AWS::AppStream::ApplicationFleetAssociation", "AWS::MediaTailor::LiveSource", @@ -923,6 +932,7 @@ "AWS::ApiGateway::Deployment", "AWS::WAFRegional::Rule", "AWS::Inspector::ResourceGroup", + "AWS::B2BI::Partnership", "AWS::LakeFormation::DataLakeSettings", "AWS::GreengrassV2::Deployment", "AWS::AutoScaling::ScalingPolicy", @@ -935,6 +945,7 @@ "AWS::ApiGatewayV2::RouteResponse", "AWS::QuickSight::Topic", "AWS::CloudWatch::MetricStream", + "AWS::DMS::DataProvider", "AWS::Location::GeofenceCollection", "AWS::SSM::Parameter", "AWS::ApiGatewayV2::ApiGatewayManagedOverrides", @@ -944,6 +955,7 @@ "AWS::SageMaker::MonitoringSchedule", "AWS::IAM::OIDCProvider", "AWS::LakeFormation::Tag", + "AWS::CE::AnomalyMonitor", "AWS::ServiceCatalogAppRegistry::ResourceAssociation", "AWS::Timestream::Table", "AWS::EC2::VPNGateway", @@ -1040,6 +1052,7 @@ "aws-cleanrooms-configuredtableassociation.json", "aws-apigatewayv2-integration.json", "aws-apigatewayv2-apimapping.json", + "aws-ce-anomalysubscription.json", "aws-shield-drtaccess.json", "aws-sso-assignment.json", "aws-glue-partition.json", @@ -1095,6 +1108,7 @@ "aws-budgets-budgetsaction.json", "aws-logs-resourcepolicy.json", "aws-servicecatalog-launchnotificationconstraint.json", + "aws-dms-instanceprofile.json", "aws-opensearchserverless-vpcendpoint.json", "aws-quicksight-datasource.json", "aws-iot-cacertificate.json", @@ -1192,7 +1206,6 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", - "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -1217,6 +1230,7 @@ "aws-sagemaker-modelpackage.json", "aws-cleanrooms-configuredtable.json", "aws-wafregional-sizeconstraintset.json", + "aws-eventschemas-discoverer.json", "aws-networkmanager-connectpeer.json", "aws-elasticache-usergroup.json", "aws-iot-thinggroup.json", @@ -1255,6 +1269,7 @@ "aws-sns-topic.json", "aws-backup-backupselection.json", "aws-datasync-locationfsxlustre.json", + "aws-sagemaker-app.json", "aws-ec2-vpcgatewayattachment.json", "aws-cloudtrail-trail.json", "aws-ec2-vpnconnectionroute.json", @@ -1294,7 +1309,6 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", - "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-entityresolution-schemamapping.json", "aws-wafregional-xssmatchset.json", @@ -1308,6 +1322,7 @@ "aws-guardduty-member.json", "aws-groundstation-missionprofile.json", "aws-cloudformation-customresource.json", + "aws-fis-targetaccountconfiguration.json", "aws-refactorspaces-route.json", "aws-kinesisanalytics-applicationoutput.json", "aws-wafv2-rulegroup.json", @@ -1317,7 +1332,6 @@ "aws-elasticache-parametergroup.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", - "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-location-trackerconsumer.json", "aws-vpclattice-servicenetwork.json", @@ -1357,6 +1371,7 @@ "aws-robomaker-robotapplicationversion.json", "aws-appstream-appblock.json", "aws-shield-protection.json", + "aws-b2bi-transformer.json", "aws-ses-vdmattributes.json", "aws-identitystore-groupmembership.json", "aws-appsync-functionconfiguration.json", @@ -1371,6 +1386,7 @@ "aws-fms-notificationchannel.json", "aws-msk-batchscramsecret.json", "aws-dms-certificate.json", + "aws-s3-bucket.json", "aws-guardduty-ipset.json", "aws-servicediscovery-httpnamespace.json", "aws-emr-securityconfiguration.json", @@ -1446,6 +1462,7 @@ "aws-datasync-locationnfs.json", "aws-amplify-domain.json", "aws-kinesisanalyticsv2-applicationoutput.json", + "aws-sagemaker-domain.json", "aws-greengrass-coredefinitionversion.json", "aws-certificatemanager-certificate.json", "aws-glue-schemaversionmetadata.json", @@ -1513,6 +1530,7 @@ "aws-kinesis-stream.json", "aws-greengrass-coredefinition.json", "aws-backup-reportplan.json", + "aws-b2bi-capability.json", "aws-batch-jobdefinition.json", "aws-iam-samlprovider.json", "aws-lightsail-database.json", @@ -1522,9 +1540,9 @@ "aws-codestarconnections-syncconfiguration.json", "aws-ec2-networkinterfaceattachment.json", "aws-cognito-userpooluser.json", + "aws-codedeploy-deploymentconfig.json", "aws-networkmanager-globalnetwork.json", "aws-stepfunctions-statemachineversion.json", - "aws-servicecatalogappregistry-application.json", "aws-networkmanager-site.json", "aws-glue-database.json", "aws-neptune-dbcluster.json", @@ -1569,6 +1587,7 @@ "aws-servicecatalog-acceptedportfolioshare.json", "aws-route53resolver-firewallrulegroupassociation.json", "aws-route53resolver-resolverqueryloggingconfig.json", + "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-subnet.json", "aws-cloudtrail-resourcepolicy.json", "aws-s3objectlambda-accesspoint.json", @@ -1626,7 +1645,6 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", - "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-rds-dbcluster.json", @@ -1675,6 +1693,7 @@ "aws-ssmincidents-responseplan.json", "aws-lambda-layerversionpermission.json", "aws-secretsmanager-secret.json", + "aws-route53resolver-resolverconfig.json", "aws-elasticache-user.json", "aws-neptune-dbinstance.json", "aws-sagemaker-image.json", @@ -1689,6 +1708,7 @@ "aws-datasync-locations3.json", "aws-mediaconvert-preset.json", "aws-autoscaling-lifecyclehook.json", + "aws-fsx-datarepositoryassociation.json", "aws-ec2-networkinterface.json", "aws-sagemaker-featuregroup.json", "aws-appsync-resolver.json", @@ -1735,6 +1755,7 @@ "aws-cloudwatch-anomalydetector.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-servicecatalog-serviceaction.json", + "aws-dms-migrationproject.json", "aws-appstream-entitlement.json", "aws-iam-userpolicy.json", "aws-cloudfront-originaccesscontrol.json", @@ -1752,13 +1773,11 @@ "aws-lightsail-loadbalancertlscertificate.json", "aws-ec2-clientvpntargetnetworkassociation.json", "aws-mediapackagev2-originendpoint.json", - "aws-appsync-graphqlapi.json", "aws-gamelift-matchmakingruleset.json", "aws-ec2-egressonlyinternetgateway.json", "aws-athena-capacityreservation.json", "aws-config-conformancepack.json", "aws-ec2-vpccidrblock.json", - "aws-aps-workspace.json", "aws-kendra-datasource.json", "aws-apprunner-vpcingressconnection.json", "aws-gamelift-script.json", @@ -1807,6 +1826,7 @@ "aws-elasticloadbalancingv2-truststore.json", "aws-glue-registry.json", "aws-ec2-keypair.json", + "aws-b2bi-profile.json", "aws-fsx-filesystem.json", "aws-appstream-applicationfleetassociation.json", "aws-mediatailor-livesource.json", @@ -1850,6 +1870,7 @@ "aws-glue-workflow.json", "aws-apigatewayv2-authorizer.json", "aws-iot-accountauditconfiguration.json", + "aws-sagemaker-userprofile.json", "aws-personalize-dataset.json", "aws-iot1click-placement.json", "aws-ec2-prefixlist.json", @@ -1934,6 +1955,7 @@ "aws-apigateway-deployment.json", "aws-wafregional-rule.json", "aws-inspector-resourcegroup.json", + "aws-b2bi-partnership.json", "aws-lakeformation-datalakesettings.json", "aws-greengrassv2-deployment.json", "aws-autoscaling-scalingpolicy.json", @@ -1946,6 +1968,7 @@ "aws-apigatewayv2-routeresponse.json", "aws-quicksight-topic.json", "aws-cloudwatch-metricstream.json", + "aws-dms-dataprovider.json", "aws-location-geofencecollection.json", "aws-ssm-parameter.json", "aws-apigatewayv2-apigatewaymanagedoverrides.json", @@ -1955,6 +1978,7 @@ "aws-sagemaker-monitoringschedule.json", "aws-iam-oidcprovider.json", "aws-lakeformation-tag.json", + "aws-ce-anomalymonitor.json", "aws-servicecatalogappregistry-resourceassociation.json", "aws-timestream-table.json", "aws-ec2-vpngateway.json", diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-appsync-graphqlapi.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-appsync-graphqlapi.json new file mode 100644 index 0000000000..077c3fd5af --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-appsync-graphqlapi.json @@ -0,0 +1,222 @@ +{ + "additionalProperties": false, + "definitions": { + "AdditionalAuthenticationProvider": { + "additionalProperties": false, + "properties": { + "AuthenticationType": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "UserPoolConfig": { + "$ref": "#/definitions/CognitoUserPoolConfig" + } + }, + "required": [ + "AuthenticationType" + ], + "type": "object" + }, + "CognitoUserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "LambdaAuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsRoleArn": { + "type": "string" + }, + "ExcludeVerboseContent": { + "type": "boolean" + }, + "FieldLogLevel": { + "type": "string" + } + }, + "type": "object" + }, + "OpenIDConnectConfig": { + "additionalProperties": false, + "properties": { + "AuthTTL": { + "type": "number" + }, + "ClientId": { + "type": "string" + }, + "IatTTL": { + "type": "number" + }, + "Issuer": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "UserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "DefaultAction": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AppSync::GraphQLApi", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalAuthenticationProviders": { + "items": { + "$ref": "#/definitions/AdditionalAuthenticationProvider" + }, + "type": "array", + "uniqueItems": false + }, + "ApiId": { + "type": "string" + }, + "ApiType": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "AuthenticationType": { + "enum": [ + "API_KEY", + "AWS_IAM", + "AMAZON_COGNITO_USER_POOLS", + "OPENID_CONNECT", + "AWS_LAMBDA" + ], + "type": "string" + }, + "GraphQLDns": { + "type": "string" + }, + "GraphQLEndpointArn": { + "type": "string" + }, + "GraphQLUrl": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "LogConfig": { + "$ref": "#/definitions/LogConfig" + }, + "MergedApiExecutionRoleArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "OwnerContact": { + "type": "string" + }, + "RealtimeDns": { + "type": "string" + }, + "RealtimeUrl": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UserPoolConfig": { + "$ref": "#/definitions/UserPoolConfig" + }, + "Visibility": { + "type": "string" + }, + "XrayEnabled": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/ApiId", + "/properties/GraphQLEndpointArn", + "/properties/Id", + "/properties/GraphQLDns", + "/properties/GraphQLUrl", + "/properties/RealtimeDns", + "/properties/RealtimeUrl", + "/properties/Arn" + ], + "required": [ + "Name", + "AuthenticationType" + ], + "typeName": "AWS::AppSync::GraphQLApi" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-aps-workspace.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-aps-workspace.json new file mode 100644 index 0000000000..911caeaf8c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-aps-workspace.json @@ -0,0 +1,166 @@ +{ + "additionalProperties": false, + "definitions": { + "LoggingConfiguration": { + "additionalProperties": false, + "description": "Logging configuration", + "properties": { + "LogGroupArn": { + "description": "CloudWatch log group ARN", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::APS::Workspace", + "handlers": { + "create": { + "permissions": [ + "aps:CreateWorkspace", + "aps:DescribeWorkspace", + "aps:TagResource", + "aps:CreateAlertManagerDefinition", + "aps:DescribeAlertManagerDefinition", + "aps:CreateLoggingConfiguration", + "logs:CreateLogDelivery", + "logs:GetLogDelivery", + "logs:ListLogDeliveries", + "logs:PutResourcePolicy", + "kms:CreateGrant", + "kms:Decrypt", + "kms:GenerateDataKey" + ] + }, + "delete": { + "permissions": [ + "aps:DeleteWorkspace", + "aps:DescribeWorkspace", + "aps:DeleteAlertManagerDefinition", + "aps:DeleteLoggingConfiguration", + "logs:DeleteLogDelivery" + ] + }, + "list": { + "permissions": [ + "aps:ListWorkspaces", + "aps:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "aps:DescribeWorkspace", + "aps:ListTagsForResource", + "aps:DescribeAlertManagerDefinition", + "aps:DescribeLoggingConfiguration" + ] + }, + "update": { + "permissions": [ + "aps:UpdateWorkspaceAlias", + "aps:DescribeWorkspace", + "aps:TagResource", + "aps:UntagResource", + "aps:ListTagsForResource", + "aps:CreateAlertManagerDefinition", + "aps:PutAlertManagerDefinition", + "aps:DeleteAlertManagerDefinition", + "aps:CreateLoggingConfiguration", + "aps:DescribeLoggingConfiguration", + "aps:UpdateLoggingConfiguration", + "aps:DeleteLoggingConfiguration", + "logs:CreateLogDelivery", + "logs:GetLogDelivery", + "logs:UpdateLogDelivery", + "logs:ListLogDeliveries", + "logs:DeleteLogDelivery", + "logs:PutResourcePolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "AlertManagerDefinition": { + "description": "The AMP Workspace alert manager definition data", + "type": "string" + }, + "Alias": { + "description": "AMP Workspace alias.", + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "Arn": { + "description": "Workspace arn.", + "maxLength": 128, + "minLength": 1, + "pattern": "^arn:(aws|aws-us-gov|aws-cn):aps:[a-z0-9-]+:[0-9]+:workspace/[a-zA-Z0-9-]+$", + "type": "string" + }, + "LoggingConfiguration": { + "$ref": "#/definitions/LoggingConfiguration" + }, + "PrometheusEndpoint": { + "description": "AMP Workspace prometheus endpoint", + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "WorkspaceId": { + "description": "Required to identify a specific APS Workspace.", + "maxLength": 100, + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{1,99}$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/WorkspaceId", + "/properties/Arn", + "/properties/PrometheusEndpoint" + ], + "required": [], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::APS::Workspace" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-codedeploy-deploymentconfig.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-codedeploy-deploymentconfig.json deleted file mode 100644 index a37713685a..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-codedeploy-deploymentconfig.json +++ /dev/null @@ -1,173 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentConfigName", - "/properties/MinimumHealthyHosts", - "/properties/ComputePlatform", - "/properties/ZonalConfig", - "/properties/TrafficRoutingConfig" - ], - "definitions": { - "MinimumHealthyHosts": { - "additionalProperties": false, - "properties": { - "Type": { - "enum": [ - "HOST_COUNT", - "FLEET_PERCENT" - ], - "type": "string" - }, - "Value": { - "type": "integer" - } - }, - "required": [ - "Type", - "Value" - ], - "type": "object" - }, - "MinimumHealthyHostsPerZone": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "integer" - } - }, - "required": [ - "Type", - "Value" - ], - "type": "object" - }, - "TimeBasedCanary": { - "additionalProperties": false, - "properties": { - "CanaryInterval": { - "type": "integer" - }, - "CanaryPercentage": { - "type": "integer" - } - }, - "required": [ - "CanaryPercentage", - "CanaryInterval" - ], - "type": "object" - }, - "TimeBasedLinear": { - "additionalProperties": false, - "properties": { - "LinearInterval": { - "type": "integer" - }, - "LinearPercentage": { - "type": "integer" - } - }, - "required": [ - "LinearInterval", - "LinearPercentage" - ], - "type": "object" - }, - "TrafficRoutingConfig": { - "additionalProperties": false, - "properties": { - "TimeBasedCanary": { - "$ref": "#/definitions/TimeBasedCanary" - }, - "TimeBasedLinear": { - "$ref": "#/definitions/TimeBasedLinear" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "ZonalConfig": { - "additionalProperties": false, - "properties": { - "FirstZoneMonitorDurationInSeconds": { - "format": "int64", - "type": "integer" - }, - "MinimumHealthyHostsPerZone": { - "$ref": "#/definitions/MinimumHealthyHostsPerZone" - }, - "MonitorDurationInSeconds": { - "format": "int64", - "type": "integer" - } - }, - "required": [], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentConfig", - "handlers": { - "create": { - "permissions": [ - "codedeploy:CreateDeploymentConfig" - ] - }, - "delete": { - "permissions": [ - "codedeploy:GetDeploymentConfig", - "codedeploy:DeleteDeploymentConfig" - ] - }, - "list": { - "permissions": [ - "codedeploy:ListDeploymentConfigs" - ] - }, - "read": { - "permissions": [ - "codedeploy:GetDeploymentConfig" - ] - } - }, - "primaryIdentifier": [ - "/properties/DeploymentConfigName" - ], - "properties": { - "ComputePlatform": { - "description": "The destination platform type for the deployment (Lambda, Server, or ECS).", - "type": "string" - }, - "DeploymentConfigName": { - "description": "A name for the deployment configuration. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the deployment configuration name. For more information, see Name Type.", - "type": "string" - }, - "MinimumHealthyHosts": { - "$ref": "#/definitions/MinimumHealthyHosts", - "description": "The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value." - }, - "TrafficRoutingConfig": { - "$ref": "#/definitions/TrafficRoutingConfig", - "description": "The configuration that specifies how the deployment traffic is routed." - }, - "ZonalConfig": { - "$ref": "#/definitions/ZonalConfig", - "description": "The zonal deployment config that specifies how the zonal deployment behaves" - } - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-codedeploy", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::CodeDeploy::DeploymentConfig" -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-codedeploy-deploymentgroup.json new file mode 100644 index 0000000000..208990a115 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-codedeploy-deploymentgroup.json @@ -0,0 +1,523 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentGroupName", + "/properties/ApplicationName" + ], + "definitions": { + "Alarm": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AlarmConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/Alarm" + }, + "type": "array", + "uniqueItems": true + }, + "Enabled": { + "type": "boolean" + }, + "IgnorePollAlarmFailure": { + "type": "boolean" + } + }, + "type": "object" + }, + "AutoRollbackConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Events": { + "items": { + "enum": [ + "DEPLOYMENT_FAILURE", + "DEPLOYMENT_STOP_ON_ALARM", + "DEPLOYMENT_STOP_ON_REQUEST" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "BlueGreenDeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "DeploymentReadyOption": { + "$ref": "#/definitions/DeploymentReadyOption" + }, + "GreenFleetProvisioningOption": { + "$ref": "#/definitions/GreenFleetProvisioningOption" + }, + "TerminateBlueInstancesOnDeploymentSuccess": { + "$ref": "#/definitions/BlueInstanceTerminationOption" + } + }, + "type": "object" + }, + "BlueInstanceTerminationOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "TerminationWaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "Deployment": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "IgnoreApplicationStopFailures": { + "type": "boolean" + }, + "Revision": { + "$ref": "#/definitions/RevisionLocation" + } + }, + "required": [ + "Revision" + ], + "type": "object" + }, + "DeploymentReadyOption": { + "additionalProperties": false, + "properties": { + "ActionOnTimeout": { + "type": "string" + }, + "WaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentStyle": { + "additionalProperties": false, + "properties": { + "DeploymentOption": { + "enum": [ + "WITH_TRAFFIC_CONTROL", + "WITHOUT_TRAFFIC_CONTROL" + ], + "type": "string" + }, + "DeploymentType": { + "enum": [ + "IN_PLACE", + "BLUE_GREEN" + ], + "type": "string" + } + }, + "type": "object" + }, + "EC2TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "EC2TagSet": { + "additionalProperties": false, + "properties": { + "Ec2TagSetList": { + "items": { + "$ref": "#/definitions/EC2TagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EC2TagSetListObject": { + "additionalProperties": false, + "properties": { + "Ec2TagGroup": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ECSService": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + } + }, + "required": [ + "ServiceName", + "ClusterName" + ], + "type": "object" + }, + "ELBInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "GitHubLocation": { + "additionalProperties": false, + "properties": { + "CommitId": { + "type": "string" + }, + "Repository": { + "type": "string" + } + }, + "required": [ + "Repository", + "CommitId" + ], + "type": "object" + }, + "GreenFleetProvisioningOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "type": "object" + }, + "LoadBalancerInfo": { + "additionalProperties": false, + "properties": { + "ElbInfoList": { + "items": { + "$ref": "#/definitions/ELBInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupPairInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupPairInfo" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSet": { + "additionalProperties": false, + "properties": { + "OnPremisesTagSetList": { + "items": { + "$ref": "#/definitions/OnPremisesTagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSetListObject": { + "additionalProperties": false, + "properties": { + "OnPremisesTagGroup": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "RevisionLocation": { + "additionalProperties": false, + "properties": { + "GitHubLocation": { + "$ref": "#/definitions/GitHubLocation" + }, + "RevisionType": { + "type": "string" + }, + "S3Location": { + "$ref": "#/definitions/S3Location" + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "BundleType": { + "type": "string" + }, + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupPairInfo": { + "additionalProperties": false, + "properties": { + "ProdTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + }, + "TargetGroups": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TestTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + } + }, + "type": "object" + }, + "TrafficRoute": { + "additionalProperties": false, + "properties": { + "ListenerArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerEvents": { + "items": { + "enum": [ + "DeploymentStart", + "DeploymentSuccess", + "DeploymentFailure", + "DeploymentStop", + "DeploymentRollback", + "DeploymentReady", + "InstanceStart", + "InstanceSuccess", + "InstanceFailure", + "InstanceReady" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "TriggerName": { + "type": "string" + }, + "TriggerTargetArn": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AlarmConfiguration": { + "$ref": "#/definitions/AlarmConfiguration" + }, + "ApplicationName": { + "type": "string" + }, + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AutoRollbackConfiguration" + }, + "AutoScalingGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BlueGreenDeploymentConfiguration": { + "$ref": "#/definitions/BlueGreenDeploymentConfiguration" + }, + "Deployment": { + "$ref": "#/definitions/Deployment" + }, + "DeploymentConfigName": { + "type": "string" + }, + "DeploymentGroupName": { + "type": "string" + }, + "DeploymentStyle": { + "$ref": "#/definitions/DeploymentStyle" + }, + "ECSServices": { + "items": { + "$ref": "#/definitions/ECSService" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagFilters": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagSet": { + "$ref": "#/definitions/EC2TagSet" + }, + "Id": { + "type": "string" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/LoadBalancerInfo" + }, + "OnPremisesInstanceTagFilters": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "OnPremisesTagSet": { + "$ref": "#/definitions/OnPremisesTagSet" + }, + "OutdatedInstancesStrategy": { + "type": "string" + }, + "ServiceRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TerminationHookEnabled": { + "type": "boolean" + }, + "TriggerConfigurations": { + "items": { + "$ref": "#/definitions/TriggerConfig" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "ServiceRoleArn" + ], + "typeName": "AWS::CodeDeploy::DeploymentGroup" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-emr-cluster.json new file mode 100644 index 0000000000..7ce37fccb6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-emr-cluster.json @@ -0,0 +1,858 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Steps", + "/properties/EbsRootVolumeSize", + "/properties/SecurityConfiguration", + "/properties/ScaleDownBehavior", + "/properties/Configurations", + "/properties/ReleaseLabel", + "/properties/BootstrapActions", + "/properties/EbsRootVolumeIops", + "/properties/KerberosAttributes", + "/properties/ServiceRole", + "/properties/LogEncryptionKmsKeyId", + "/properties/Name", + "/properties/EbsRootVolumeThroughput", + "/properties/JobFlowRole", + "/properties/AdditionalInfo", + "/properties/LogUri", + "/properties/CustomAmiId", + "/properties/PlacementGroupConfigs", + "/properties/OSReleaseLabel", + "/properties/AutoScalingRole", + "/properties/Applications" + ], + "definitions": { + "Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ScalingRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/ScriptBootstrapActionConfig" + } + }, + "required": [ + "ScriptBootstrapAction", + "Name" + ], + "type": "object" + }, + "CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "EvaluationPeriods": { + "type": "integer" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "integer" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "ComparisonOperator", + "Period", + "Threshold" + ], + "type": "object" + }, + "ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "integer" + }, + "MaximumCoreCapacityUnits": { + "type": "integer" + }, + "MaximumOnDemandCapacityUnits": { + "type": "integer" + }, + "MinimumCapacityUnits": { + "type": "integer" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "UnitType", + "MaximumCapacityUnits", + "MinimumCapacityUnits" + ], + "type": "object" + }, + "Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "integer" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/EbsBlockDeviceConfig" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/KeyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/InstanceTypeConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchSpecifications": { + "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "integer" + }, + "TargetSpotCapacity": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/OnDemandProvisioningSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/SpotProvisioningSpecification" + } + }, + "type": "object" + }, + "InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceType": { + "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", + "type": "string" + }, + "WeightedCapacity": { + "type": "integer" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/ComputeLimits" + } + }, + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "PlacementGroupConfig": { + "additionalProperties": false, + "properties": { + "InstanceRole": { + "type": "string" + }, + "PlacementStrategy": { + "type": "string" + } + }, + "required": [ + "InstanceRole" + ], + "type": "object" + }, + "PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/ScalingTrigger" + } + }, + "required": [ + "Action", + "Trigger", + "Name" + ], + "type": "object" + }, + "ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BlockDurationMinutes": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "integer" + } + }, + "required": [ + "TimeoutDurationMinutes", + "TimeoutAction" + ], + "type": "object" + }, + "StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "integer" + }, + "SizeInGB": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EMR::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/Application" + }, + "type": "array", + "uniqueItems": true + }, + "AutoScalingRole": { + "type": "string" + }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AutoTerminationPolicy" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/BootstrapActionConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeIops": { + "type": "integer" + }, + "EbsRootVolumeSize": { + "type": "integer" + }, + "EbsRootVolumeThroughput": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Instances": { + "$ref": "#/definitions/JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/KerberosAttributes" + }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, + "LogUri": { + "type": "string" + }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/ManagedScalingPolicy" + }, + "MasterPublicDNS": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OSReleaseLabel": { + "type": "string" + }, + "PlacementGroupConfigs": { + "items": { + "$ref": "#/definitions/PlacementGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "StepConcurrencyLevel": { + "type": "integer" + }, + "Steps": { + "items": { + "$ref": "#/definitions/StepConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/MasterPublicDNS" + ], + "required": [ + "Instances", + "ServiceRole", + "JobFlowRole", + "Name" + ], + "typeName": "AWS::EMR::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-eventschemas-discoverer.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-eventschemas-discoverer.json deleted file mode 100644 index 791d433995..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-eventschemas-discoverer.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SourceArn" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EventSchemas::Discoverer", - "primaryIdentifier": [ - "/properties/DiscovererId" - ], - "properties": { - "CrossAccount": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DiscovererArn": { - "type": "string" - }, - "DiscovererId": { - "type": "string" - }, - "SourceArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/DiscovererId", - "/properties/DiscovererArn" - ], - "required": [ - "SourceArn" - ], - "typeName": "AWS::EventSchemas::Discoverer" -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-fsx-datarepositoryassociation.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-fsx-datarepositoryassociation.json deleted file mode 100644 index 38eb5ca608..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-fsx-datarepositoryassociation.json +++ /dev/null @@ -1,212 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/FileSystemId", - "/properties/FileSystemPath", - "/properties/DataRepositoryPath", - "/properties/BatchImportMetaDataOnCreate" - ], - "definitions": { - "AutoExportPolicy": { - "additionalProperties": false, - "description": "Describes a data repository association's automatic export policy. The ``AutoExportPolicy`` defines the types of updated objects on the file system that will be automatically exported to the data repository. As you create, modify, or delete files, Amazon FSx for Lustre automatically exports the defined changes asynchronously once your application finishes modifying the file.\n The ``AutoExportPolicy`` is only supported on Amazon FSx for Lustre file systems with a data repository association.", - "properties": { - "Events": { - "$ref": "#/definitions/EventTypes", - "description": "The ``AutoExportPolicy`` can have the following event values:\n + ``NEW`` - New files and directories are automatically exported to the data repository as they are added to the file system.\n + ``CHANGED`` - Changes to files and directories on the file system are automatically exported to the data repository.\n + ``DELETED`` - Files and directories are automatically deleted on the data repository when they are deleted on the file system.\n \n You can define any combination of event types for your ``AutoExportPolicy``." - } - }, - "required": [ - "Events" - ], - "type": "object" - }, - "AutoImportPolicy": { - "additionalProperties": false, - "description": "Describes the data repository association's automatic import policy. The AutoImportPolicy defines how Amazon FSx keeps your file metadata and directory listings up to date by importing changes to your Amazon FSx for Lustre file system as you modify objects in a linked S3 bucket.\n The ``AutoImportPolicy`` is only supported on Amazon FSx for Lustre file systems with a data repository association.", - "properties": { - "Events": { - "$ref": "#/definitions/EventTypes", - "description": "The ``AutoImportPolicy`` can have the following event values:\n + ``NEW`` - Amazon FSx automatically imports metadata of files added to the linked S3 bucket that do not currently exist in the FSx file system.\n + ``CHANGED`` - Amazon FSx automatically updates file metadata and invalidates existing file content on the file system as files change in the data repository.\n + ``DELETED`` - Amazon FSx automatically deletes files on the file system as corresponding files are deleted in the data repository.\n \n You can define any combination of event types for your ``AutoImportPolicy``." - } - }, - "required": [ - "Events" - ], - "type": "object" - }, - "EventType": { - "enum": [ - "NEW", - "CHANGED", - "DELETED" - ], - "type": "string" - }, - "EventTypes": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/EventType" - }, - "maxItems": 3, - "type": "array", - "uniqueItems": true - }, - "S3": { - "additionalProperties": false, - "description": "The configuration for an Amazon S3 data repository linked to an Amazon FSx Lustre file system with a data repository association. The configuration defines which file events (new, changed, or deleted files or directories) are automatically imported from the linked data repository to the file system or automatically exported from the file system to the data repository.", - "properties": { - "AutoExportPolicy": { - "$ref": "#/definitions/AutoExportPolicy", - "description": "Describes a data repository association's automatic export policy. The ``AutoExportPolicy`` defines the types of updated objects on the file system that will be automatically exported to the data repository. As you create, modify, or delete files, Amazon FSx for Lustre automatically exports the defined changes asynchronously once your application finishes modifying the file.\n The ``AutoExportPolicy`` is only supported on Amazon FSx for Lustre file systems with a data repository association." - }, - "AutoImportPolicy": { - "$ref": "#/definitions/AutoImportPolicy", - "description": "Describes the data repository association's automatic import policy. The AutoImportPolicy defines how Amazon FSx keeps your file metadata and directory listings up to date by importing changes to your Amazon FSx for Lustre file system as you modify objects in a linked S3 bucket.\n The ``AutoImportPolicy`` is only supported on Amazon FSx for Lustre file systems with a data repository association." - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "description": "Specifies a key-value pair for a resource tag.", - "properties": { - "Key": { - "description": "A value that specifies the ``TagKey``, the name of the tag. Tag keys must be unique for the resource to which they are attached.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "A value that specifies the ``TagValue``, the value assigned to the corresponding tag key. Tag values can be null and don't have to be unique in a tag set. For example, you can have a key-value pair in a tag set of ``finances : April`` and also of ``payroll : April``.", - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "Creates an Amazon FSx for Lustre data repository association (DRA). A data repository association is a link between a directory on the file system and an Amazon S3 bucket or prefix. You can have a maximum of 8 data repository associations on a file system. Data repository associations are supported on all FSx for Lustre 2.12 and newer file systems, excluding ``scratch_1`` deployment type. \n Each data repository association must have a unique Amazon FSx file system directory and a unique S3 bucket or prefix associated with it. You can configure a data repository association for automatic import only, for automatic export only, or for both. To learn more about linking a data repository to your file system, see [Linking your file system to an S3 bucket](https://docs.aws.amazon.com/fsx/latest/LustreGuide/create-dra-linked-data-repo.html).", - "handlers": { - "create": { - "permissions": [ - "fsx:CreateDataRepositoryAssociation", - "fsx:DescribeDataRepositoryAssociations", - "fsx:TagResource", - "s3:ListBucket", - "s3:GetBucketPolicy", - "s3:PutBucketPolicy", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy" - ], - "timeoutInMinutes": 120 - }, - "delete": { - "permissions": [ - "fsx:DescribeDataRepositoryAssociations", - "fsx:DeleteDataRepositoryAssociation" - ], - "timeoutInMinutes": 180 - }, - "list": { - "permissions": [ - "fsx:DescribeDataRepositoryAssociations" - ] - }, - "read": { - "permissions": [ - "fsx:DescribeDataRepositoryAssociations" - ] - }, - "update": { - "permissions": [ - "fsx:DescribeDataRepositoryAssociations", - "fsx:UpdateDataRepositoryAssociation", - "fsx:TagResource", - "fsx:UntagResource", - "s3:ListBucket", - "s3:GetBucketPolicy", - "s3:PutBucketPolicy", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy" - ], - "timeoutInMinutes": 180 - } - }, - "primaryIdentifier": [ - "/properties/AssociationId" - ], - "properties": { - "AssociationId": { - "description": "", - "type": "string" - }, - "BatchImportMetaDataOnCreate": { - "description": "A boolean flag indicating whether an import data repository task to import metadata should run after the data repository association is created. The task runs if this flag is set to ``true``.", - "type": "boolean" - }, - "DataRepositoryPath": { - "description": "The path to the Amazon S3 data repository that will be linked to the file system. The path can be an S3 bucket or prefix in the format ``s3://myBucket/myPrefix/``. This path specifies where in the S3 data repository files will be imported from or exported to.", - "type": "string" - }, - "FileSystemId": { - "description": "The ID of the file system on which the data repository association is configured.", - "type": "string" - }, - "FileSystemPath": { - "description": "A path on the Amazon FSx for Lustre file system that points to a high-level directory (such as ``/ns1/``) or subdirectory (such as ``/ns1/subdir/``) that will be mapped 1-1 with ``DataRepositoryPath``. The leading forward slash in the name is required. Two data repository associations cannot have overlapping file system paths. For example, if a data repository is associated with file system path ``/ns1/``, then you cannot link another data repository with file system path ``/ns1/ns2``.\n This path specifies where in your file system files will be exported from or imported to. This file system directory can be linked to only one Amazon S3 bucket, and no other S3 bucket can be linked to the directory.\n If you specify only a forward slash (``/``) as the file system path, you can link only one data repository to the file system. You can only specify \"/\" as the file system path for the first data repository associated with a file system.", - "type": "string" - }, - "ImportedFileChunkSize": { - "description": "For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system or cache.\n The default chunk size is 1,024 MiB (1 GiB) and can go as high as 512,000 MiB (500 GiB). Amazon S3 objects have a maximum size of 5 TB.", - "type": "integer" - }, - "ResourceARN": { - "description": "", - "type": "string" - }, - "S3": { - "$ref": "#/definitions/S3", - "description": "The configuration for an Amazon S3 data repository linked to an Amazon FSx Lustre file system with a data repository association. The configuration defines which file events (new, changed, or deleted files or directories) are automatically imported from the linked data repository to the file system or automatically exported from the file system to the data repository." - }, - "Tags": { - "description": "An array of key-value pairs to apply to this resource.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/AssociationId", - "/properties/ResourceARN" - ], - "required": [ - "FileSystemId", - "FileSystemPath", - "DataRepositoryPath" - ], - "resourceLink": { - "mappings": { - "AssociationId": "/AssociationId", - "FileSystemId": "/FileSystemId" - }, - "templateUri": "/fsx/home?region=${awsRegion}#data-repository-associations-details/${FileSystemId}/${AssociationId}" - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fsx.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::FSx::DataRepositoryAssociation" -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-image.json new file mode 100644 index 0000000000..223d64e03e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-image.json @@ -0,0 +1,263 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ImageRecipeArn", + "/properties/ContainerRecipeArn", + "/properties/InfrastructureConfigurationArn", + "/properties/Workflows", + "/properties/DistributionConfigurationArn", + "/properties/ImageTestsConfiguration", + "/properties/ImageScanningConfiguration", + "/properties/EnhancedImageMetadataEnabled", + "/properties/Tags" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Contains settings for Image Builder image resource and container image scans.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "The image tests configuration used when creating this image.", + "properties": { + "ImageTestsEnabled": { + "description": "ImageTestsEnabled", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "TimeoutMinutes", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "WorkflowConfiguration": { + "additionalProperties": false, + "description": "The workflow configuration of the image", + "properties": { + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "enum": [ + "CONTINUE", + "ABORT" + ], + "type": "string" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string" + }, + "Parameters": { + "description": "The parameters associated with the workflow", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "type": "array" + }, + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowParameter": { + "additionalProperties": false, + "description": "A parameter associated with the workflow", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowParameterValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", + "type": "string" + } + }, + "description": "Resource schema for AWS::ImageBuilder::Image", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:GetImage", + "imagebuilder:CreateImage", + "imagebuilder:TagResource", + "inspector2:BatchGetAccountStatus" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "imagebuilder:GetImage", + "imagebuilder:DeleteImage", + "imagebuilder:UnTagResource", + "imagebuilder:CancelImageCreation" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListImages" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImage" + ] + } + }, + "oneOf": [ + { + "required": [ + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string" + }, + "ImageId": { + "description": "The AMI ID of the EC2 AMI in current region.", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration used when creating this image." + }, + "ImageUri": { + "description": "URI for containers created in current Region with default ECR image tag", + "type": "string" + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", + "type": "string" + }, + "Name": { + "description": "The name of the image.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the image.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Name", + "/properties/ImageId", + "/properties/ImageUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Image" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-imagepipeline.json new file mode 100644 index 0000000000..3cf9b2a4a9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-imagepipeline.json @@ -0,0 +1,277 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "Image tests configuration.", + "properties": { + "ImageTestsEnabled": { + "description": "Defines if tests should be executed when building this image.", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "The maximum time in minutes that tests are permitted to run.", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "description": "The schedule of the image pipeline.", + "properties": { + "PipelineExecutionStartCondition": { + "description": "The condition configures when the pipeline should trigger a new image build.", + "enum": [ + "EXPRESSION_MATCH_ONLY", + "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + ], + "type": "string" + }, + "ScheduleExpression": { + "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowConfiguration": { + "additionalProperties": false, + "description": "The workflow configuration of the image", + "properties": { + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "enum": [ + "CONTINUE", + "ABORT" + ], + "type": "string" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string" + }, + "Parameters": { + "description": "The parameters associated with the workflow", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "type": "array" + }, + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowParameter": { + "additionalProperties": false, + "description": "A parameter associated with the workflow", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowParameterValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", + "type": "string" + } + }, + "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:CreateImagePipeline", + "imagebuilder:GetWorkflow", + "inspector2:BatchGetAccountStatus" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:UnTagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:DeleteImagePipeline" + ] + }, + "list": { + "permissions": [ + "imagebuilder:ListImagePipelines" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImagePipeline" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "imagebuilder:GetImagePipeline", + "imagebuilder:UpdateImagePipeline", + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Name", + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "Name", + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image pipeline.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "Description": { + "description": "The description of the image pipeline.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration of the image pipeline." + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", + "type": "string" + }, + "Name": { + "description": "The name of the image pipeline.", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule", + "description": "The schedule of the image pipeline." + }, + "Status": { + "description": "The status of the image pipeline.", + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags of this image pipeline.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::ImagePipeline" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-workflow.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-workflow.json new file mode 100644 index 0000000000..5c25c2361b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-workflow.json @@ -0,0 +1,145 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Version", + "/properties/ChangeDescription", + "/properties/Description", + "/properties/Data", + "/properties/Uri", + "/properties/Type", + "/properties/KmsKeyId", + "/properties/Tags" + ], + "description": "Resource schema for AWS::ImageBuilder::Workflow", + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "kms:GenerateDataKey*", + "kms:Encrypt", + "kms:Decrypt", + "s3:GetObject", + "s3:HeadBucket", + "s3:GetBucketLocation", + "imagebuilder:TagResource", + "imagebuilder:GetWorkflow", + "imagebuilder:CreateWorkflow" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:GetWorkflow", + "imagebuilder:UnTagResource", + "imagebuilder:DeleteWorkflow" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListWorkflows" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Data" + ] + }, + { + "required": [ + "Uri" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the workflow.", + "type": "string" + }, + "ChangeDescription": { + "description": "The change description of the workflow.", + "type": "string" + }, + "Data": { + "description": "The data of the workflow.", + "maxLength": 16000, + "minLength": 1, + "type": "string" + }, + "Description": { + "description": "The description of the workflow.", + "type": "string" + }, + "KmsKeyId": { + "description": "The KMS key identifier used to encrypt the workflow.", + "type": "string" + }, + "Name": { + "description": "The name of the workflow.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the workflow.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "description": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.", + "enum": [ + "BUILD", + "TEST", + "DISTRIBUTION" + ], + "type": "string" + }, + "Uri": { + "description": "The uri of the workflow.", + "type": "string" + }, + "Version": { + "description": "The version of the workflow.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "Name", + "Type", + "Version" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Workflow", + "writeOnlyProperties": [ + "/properties/Data", + "/properties/Uri" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-route53resolver-resolverconfig.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-route53resolver-resolverconfig.json deleted file mode 100644 index 33f4996fbd..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-route53resolver-resolverconfig.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ResourceId", - "/properties/AutodefinedReverseFlag" - ], - "description": "Resource schema for AWS::Route53Resolver::ResolverConfig.", - "handlers": { - "create": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "delete": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "list": { - "permissions": [ - "route53resolver:ListResolverConfigs" - ] - }, - "read": { - "permissions": [ - "route53resolver:GetResolverConfig" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AutodefinedReverse": { - "description": "ResolverAutodefinedReverseStatus, possible values are ENABLING, ENABLED, DISABLING AND DISABLED.", - "enum": [ - "ENABLING", - "ENABLED", - "DISABLING", - "DISABLED" - ], - "type": "string" - }, - "AutodefinedReverseFlag": { - "description": "Represents the desired status of AutodefinedReverse. The only supported value on creation is DISABLE. Deletion of this resource will return AutodefinedReverse to its default value (ENABLED).", - "enum": [ - "DISABLE" - ], - "type": "string" - }, - "Id": { - "description": "Id", - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "OwnerId": { - "description": "AccountId", - "maxLength": 32, - "minLength": 12, - "type": "string" - }, - "ResourceId": { - "description": "ResourceId", - "maxLength": 64, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/OwnerId", - "/properties/Id", - "/properties/AutodefinedReverse" - ], - "required": [ - "ResourceId", - "AutodefinedReverseFlag" - ], - "taggable": false, - "typeName": "AWS::Route53Resolver::ResolverConfig" -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-s3-bucket.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-s3-bucket.json deleted file mode 100644 index 5f53f45913..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-s3-bucket.json +++ /dev/null @@ -1,1645 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/BucketName", - "/properties/ObjectLockEnabled" - ], - "definitions": { - "AbortIncompleteMultipartUpload": { - "additionalProperties": false, - "description": "Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload.", - "properties": { - "DaysAfterInitiation": { - "description": "Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload.", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "DaysAfterInitiation" - ], - "type": "object" - }, - "AccelerateConfiguration": { - "additionalProperties": false, - "properties": { - "AccelerationStatus": { - "description": "Configures the transfer acceleration state for an Amazon S3 bucket.", - "enum": [ - "Enabled", - "Suspended" - ], - "type": "string" - } - }, - "required": [ - "AccelerationStatus" - ], - "type": "object" - }, - "AccessControlTranslation": { - "additionalProperties": false, - "description": "Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS account that owns the source object.", - "properties": { - "Owner": { - "const": "Destination", - "type": "string" - } - }, - "required": [ - "Owner" - ], - "type": "object" - }, - "AnalyticsConfiguration": { - "additionalProperties": false, - "description": "Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.", - "properties": { - "Id": { - "description": "The ID that identifies the analytics configuration.", - "type": "string" - }, - "Prefix": { - "description": "The prefix that an object must have to be included in the analytics results.", - "type": "string" - }, - "StorageClassAnalysis": { - "$ref": "#/definitions/StorageClassAnalysis" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "StorageClassAnalysis", - "Id" - ], - "type": "object" - }, - "Arn": { - "description": "the Amazon Resource Name (ARN) of the specified bucket.", - "type": "string" - }, - "BucketEncryption": { - "additionalProperties": false, - "description": "Specifies default encryption for a bucket using server-side encryption with either Amazon S3-managed keys (SSE-S3) or AWS KMS-managed keys (SSE-KMS).", - "properties": { - "ServerSideEncryptionConfiguration": { - "description": "Specifies the default server-side-encryption configuration.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ServerSideEncryptionRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "ServerSideEncryptionConfiguration" - ], - "type": "object" - }, - "CorsConfiguration": { - "additionalProperties": false, - "properties": { - "CorsRules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/CorsRule", - "maxLength": 100 - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "CorsRules" - ], - "type": "object" - }, - "CorsRule": { - "additionalProperties": false, - "description": "A set of origins and methods (cross-origin access that you want to allow). You can add up to 100 rules to the configuration.", - "properties": { - "AllowedHeaders": { - "description": "Headers that are specified in the Access-Control-Request-Headers header.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AllowedMethods": { - "description": "An HTTP method that you allow the origin to execute.", - "insertionOrder": true, - "items": { - "enum": [ - "GET", - "PUT", - "HEAD", - "POST", - "DELETE" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AllowedOrigins": { - "description": "One or more origins you want customers to be able to access the bucket from.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "ExposedHeaders": { - "description": "One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object).", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Id": { - "description": "A unique identifier for this rule.", - "maxLength": 255, - "type": "string" - }, - "MaxAge": { - "description": "The time in seconds that your browser is to cache the preflight response for the specified resource.", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AllowedMethods", - "AllowedOrigins" - ], - "type": "object" - }, - "DataExport": { - "additionalProperties": false, - "description": "Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.", - "properties": { - "Destination": { - "$ref": "#/definitions/Destination" - }, - "OutputSchemaVersion": { - "const": "V_1", - "description": "The version of the output schema to use when exporting data.", - "type": "string" - } - }, - "required": [ - "Destination", - "OutputSchemaVersion" - ], - "type": "object" - }, - "DefaultRetention": { - "additionalProperties": false, - "description": "The default retention period that you want to apply to new objects placed in the specified bucket.", - "properties": { - "Days": { - "type": "integer" - }, - "Mode": { - "enum": [ - "COMPLIANCE", - "GOVERNANCE" - ], - "type": "string" - }, - "Years": { - "type": "integer" - } - }, - "type": "object" - }, - "DeleteMarkerReplication": { - "additionalProperties": false, - "properties": { - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "type": "object" - }, - "Destination": { - "additionalProperties": false, - "description": "Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC).", - "properties": { - "BucketAccountId": { - "description": "The account ID that owns the destination S3 bucket. ", - "type": "string" - }, - "BucketArn": { - "description": "The Amazon Resource Name (ARN) of the bucket to which data is exported.", - "type": "string" - }, - "Format": { - "description": "Specifies the file format used when exporting data to Amazon S3.", - "enum": [ - "CSV", - "ORC", - "Parquet" - ], - "type": "string" - }, - "Prefix": { - "description": "The prefix to use when exporting data. The prefix is prepended to all results.", - "type": "string" - } - }, - "required": [ - "BucketArn", - "Format" - ], - "type": "object" - }, - "EncryptionConfiguration": { - "additionalProperties": false, - "description": "Specifies encryption-related information for an Amazon S3 bucket that is a destination for replicated objects.", - "properties": { - "ReplicaKmsKeyID": { - "description": "Specifies the ID (Key ARN or Alias ARN) of the customer managed customer master key (CMK) stored in AWS Key Management Service (KMS) for the destination bucket.", - "type": "string" - } - }, - "required": [ - "ReplicaKmsKeyID" - ], - "type": "object" - }, - "EventBridgeConfiguration": { - "additionalProperties": false, - "description": "Describes the Amazon EventBridge notification configuration for an Amazon S3 bucket.", - "properties": { - "EventBridgeEnabled": { - "default": "true", - "description": "Specifies whether to send notifications to Amazon EventBridge when events occur in an Amazon S3 bucket.", - "type": "boolean" - } - }, - "required": [ - "EventBridgeEnabled" - ], - "type": "object" - }, - "FilterRule": { - "additionalProperties": false, - "description": "Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.", - "properties": { - "Name": { - "maxLength": 1024, - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Name" - ], - "type": "object" - }, - "IntelligentTieringConfiguration": { - "additionalProperties": false, - "properties": { - "Id": { - "description": "The ID used to identify the S3 Intelligent-Tiering configuration.", - "type": "string" - }, - "Prefix": { - "description": "An object key name prefix that identifies the subset of objects to which the rule applies.", - "type": "string" - }, - "Status": { - "description": "Specifies the status of the configuration.", - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - }, - "TagFilters": { - "description": "A container for a key-value pair.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Tierings": { - "description": "Specifies a list of S3 Intelligent-Tiering storage class tiers in the configuration. At least one tier must be defined in the list. At most, you can specify two tiers in the list, one for each available AccessTier: ARCHIVE_ACCESS and DEEP_ARCHIVE_ACCESS.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Tiering" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Id", - "Status", - "Tierings" - ], - "type": "object" - }, - "InventoryConfiguration": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/Destination" - }, - "Enabled": { - "description": "Specifies whether the inventory is enabled or disabled.", - "type": "boolean" - }, - "Id": { - "description": "The ID used to identify the inventory configuration.", - "type": "string" - }, - "IncludedObjectVersions": { - "description": "Object versions to include in the inventory list.", - "enum": [ - "All", - "Current" - ], - "type": "string" - }, - "OptionalFields": { - "description": "Contains the optional fields that are included in the inventory results.", - "insertionOrder": true, - "items": { - "enum": [ - "Size", - "LastModifiedDate", - "StorageClass", - "ETag", - "IsMultipartUploaded", - "ReplicationStatus", - "EncryptionStatus", - "ObjectLockRetainUntilDate", - "ObjectLockMode", - "ObjectLockLegalHoldStatus", - "IntelligentTieringAccessTier", - "BucketKeyStatus", - "ChecksumAlgorithm" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Prefix": { - "description": "The prefix that is prepended to all inventory results.", - "type": "string" - }, - "ScheduleFrequency": { - "description": "Specifies the schedule for generating inventory results.", - "enum": [ - "Daily", - "Weekly" - ], - "type": "string" - } - }, - "required": [ - "Destination", - "Enabled", - "Id", - "IncludedObjectVersions", - "ScheduleFrequency" - ], - "type": "object" - }, - "LambdaConfiguration": { - "additionalProperties": false, - "description": "Describes the AWS Lambda functions to invoke and the events for which to invoke them.", - "properties": { - "Event": { - "description": "The Amazon S3 bucket event for which to invoke the AWS Lambda function.", - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter", - "description": "The filtering rules that determine which objects invoke the AWS Lambda function." - }, - "Function": { - "description": "The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3 invokes when the specified event type occurs.", - "type": "string" - } - }, - "required": [ - "Function", - "Event" - ], - "type": "object" - }, - "LifecycleConfiguration": { - "additionalProperties": false, - "properties": { - "Rules": { - "description": "A lifecycle rule for individual objects in an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Rule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "DestinationBucketName": { - "description": "The name of an Amazon S3 bucket where Amazon S3 store server access log files. You can store log files in any bucket that you own. By default, logs are stored in the bucket where the LoggingConfiguration property is defined.", - "type": "string" - }, - "LogFilePrefix": { - "type": "string" - } - }, - "type": "object" - }, - "Metrics": { - "additionalProperties": false, - "properties": { - "EventThreshold": { - "$ref": "#/definitions/ReplicationTimeValue" - }, - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "MetricsConfiguration": { - "additionalProperties": false, - "properties": { - "AccessPointArn": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Prefix": { - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Id" - ], - "type": "object" - }, - "NoncurrentVersionExpiration": { - "additionalProperties": false, - "description": "Container for the expiration rule that describes when noncurrent objects are expired. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 expire noncurrent object versions at a specific period in the object's lifetime", - "properties": { - "NewerNoncurrentVersions": { - "description": "Specified the number of newer noncurrent and current versions that must exists before performing the associated action", - "type": "integer" - }, - "NoncurrentDays": { - "description": "Specified the number of days an object is noncurrent before Amazon S3 can perform the associated action", - "type": "integer" - } - }, - "required": [ - "NoncurrentDays" - ], - "type": "object" - }, - "NoncurrentVersionTransition": { - "additionalProperties": false, - "description": "Container for the transition rule that describes when noncurrent objects transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's lifetime.", - "properties": { - "NewerNoncurrentVersions": { - "description": "Specified the number of newer noncurrent and current versions that must exists before performing the associated action", - "type": "integer" - }, - "StorageClass": { - "description": "The class of storage used to store the object.", - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "Glacier", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "STANDARD_IA" - ], - "type": "string" - }, - "TransitionInDays": { - "description": "Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action.", - "type": "integer" - } - }, - "required": [ - "StorageClass", - "TransitionInDays" - ], - "type": "object" - }, - "NotificationConfiguration": { - "additionalProperties": false, - "description": "Describes the notification configuration for an Amazon S3 bucket.", - "properties": { - "EventBridgeConfiguration": { - "$ref": "#/definitions/EventBridgeConfiguration" - }, - "LambdaConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/LambdaConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "QueueConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/QueueConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "TopicConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TopicConfiguration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "NotificationFilter": { - "additionalProperties": false, - "description": "Specifies object key name filtering rules.", - "properties": { - "S3Key": { - "$ref": "#/definitions/S3KeyFilter" - } - }, - "required": [ - "S3Key" - ], - "type": "object" - }, - "ObjectLockConfiguration": { - "additionalProperties": false, - "properties": { - "ObjectLockEnabled": { - "const": "Enabled", - "type": "string" - }, - "Rule": { - "$ref": "#/definitions/ObjectLockRule" - } - }, - "type": "object" - }, - "ObjectLockRule": { - "additionalProperties": false, - "description": "The Object Lock rule in place for the specified object.", - "properties": { - "DefaultRetention": { - "$ref": "#/definitions/DefaultRetention" - } - }, - "type": "object" - }, - "OwnershipControls": { - "additionalProperties": false, - "properties": { - "Rules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/OwnershipControlsRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "OwnershipControlsRule": { - "additionalProperties": false, - "properties": { - "ObjectOwnership": { - "description": "Specifies an object ownership rule.", - "enum": [ - "ObjectWriter", - "BucketOwnerPreferred", - "BucketOwnerEnforced" - ], - "type": "string" - } - }, - "type": "object" - }, - "PublicAccessBlockConfiguration": { - "additionalProperties": false, - "description": "Configuration that defines how Amazon S3 handles public access.", - "properties": { - "BlockPublicAcls": { - "description": "Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this bucket. Setting this element to TRUE causes the following behavior:\n- PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public.\n - PUT Object calls fail if the request includes a public ACL.\nEnabling this setting doesn't affect existing policies or ACLs.", - "type": "boolean" - }, - "BlockPublicPolicy": { - "description": "Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to TRUE causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.\nEnabling this setting doesn't affect existing bucket policies.", - "type": "boolean" - }, - "IgnorePublicAcls": { - "description": "Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this element to TRUE causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket.\nEnabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.", - "type": "boolean" - }, - "RestrictPublicBuckets": { - "description": "Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to TRUE restricts access to this bucket to only AWS services and authorized users within this account if the bucket has a public policy.\nEnabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked.", - "type": "boolean" - } - }, - "type": "object" - }, - "QueueConfiguration": { - "additionalProperties": false, - "description": "The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages.", - "properties": { - "Event": { - "description": "The Amazon S3 bucket event about which you want to publish messages to Amazon SQS.", - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter", - "description": "The filtering rules that determine which objects trigger notifications." - }, - "Queue": { - "description": "The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type.", - "type": "string" - } - }, - "required": [ - "Event", - "Queue" - ], - "type": "object" - }, - "RedirectAllRequestsTo": { - "additionalProperties": false, - "dependencies": { - "RedirectAllRequestsTo": { - "properties": { - "ErrorDocument": false, - "IndexDocument": false, - "RoutingRules": false - } - } - }, - "description": "Specifies the redirect behavior of all requests to a website endpoint of an Amazon S3 bucket.", - "properties": { - "HostName": { - "description": "Name of the host where requests are redirected.", - "type": "string" - }, - "Protocol": { - "description": "Protocol to use when redirecting requests. The default is the protocol that is used in the original request.", - "enum": [ - "http", - "https" - ], - "type": "string" - } - }, - "required": [ - "HostName" - ], - "type": "object" - }, - "RedirectRule": { - "additionalProperties": false, - "description": "Specifies how requests are redirected. In the event of an error, you can specify a different error code to return.", - "properties": { - "HostName": { - "description": "The host name to use in the redirect request.", - "type": "string" - }, - "HttpRedirectCode": { - "description": "The HTTP redirect code to use on the response. Not required if one of the siblings is present.", - "type": "string" - }, - "Protocol": { - "description": "Protocol to use when redirecting requests. The default is the protocol that is used in the original request.", - "enum": [ - "http", - "https" - ], - "type": "string" - }, - "ReplaceKeyPrefixWith": { - "description": "The object key prefix to use in the redirect request.", - "type": "string" - }, - "ReplaceKeyWith": { - "description": "The specific object key to use in the redirect request.d", - "type": "string" - } - }, - "type": "object" - }, - "ReplicaModifications": { - "additionalProperties": false, - "properties": { - "Status": { - "description": "Specifies whether Amazon S3 replicates modifications on replicas.", - "enum": [ - "Enabled", - "Disabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "ReplicationConfiguration": { - "additionalProperties": false, - "description": "A container for replication rules. You can add up to 1,000 rules. The maximum size of a replication configuration is 2 MB.", - "properties": { - "Role": { - "awsType": "IamRoleArn", - "description": "The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that Amazon S3 assumes when replicating objects.", - "type": "string" - }, - "Rules": { - "description": "A container for one or more replication rules.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ReplicationRule", - "maxLength": 1000, - "minLength": 1 - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Role", - "Rules" - ], - "type": "object" - }, - "ReplicationDestination": { - "additionalProperties": false, - "description": "Specifies which Amazon S3 bucket to store replicated objects in and their storage class.", - "properties": { - "AccessControlTranslation": { - "$ref": "#/definitions/AccessControlTranslation" - }, - "Account": { - "type": "string" - }, - "Bucket": { - "type": "string" - }, - "EncryptionConfiguration": { - "$ref": "#/definitions/EncryptionConfiguration" - }, - "Metrics": { - "$ref": "#/definitions/Metrics" - }, - "ReplicationTime": { - "$ref": "#/definitions/ReplicationTime" - }, - "StorageClass": { - "description": "The storage class to use when replicating objects, such as S3 Standard or reduced redundancy.", - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "REDUCED_REDUNDANCY", - "STANDARD", - "STANDARD_IA" - ], - "type": "string" - } - }, - "required": [ - "Bucket" - ], - "type": "object" - }, - "ReplicationRule": { - "additionalProperties": false, - "description": "Specifies which Amazon S3 objects to replicate and where to store the replicas.", - "properties": { - "DeleteMarkerReplication": { - "$ref": "#/definitions/DeleteMarkerReplication" - }, - "Destination": { - "$ref": "#/definitions/ReplicationDestination" - }, - "Filter": { - "$ref": "#/definitions/ReplicationRuleFilter" - }, - "Id": { - "description": "A unique identifier for the rule.", - "maxLength": 255, - "type": "string" - }, - "Prefix": { - "description": "An object key name prefix that identifies the object or objects to which the rule applies.", - "maxLength": 1024, - "type": "string" - }, - "Priority": { - "type": "integer" - }, - "SourceSelectionCriteria": { - "$ref": "#/definitions/SourceSelectionCriteria" - }, - "Status": { - "description": "Specifies whether the rule is enabled.", - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Destination", - "Status" - ], - "type": "object" - }, - "ReplicationRuleAndOperator": { - "additionalProperties": false, - "properties": { - "Prefix": { - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ReplicationRuleFilter": { - "additionalProperties": false, - "properties": { - "And": { - "$ref": "#/definitions/ReplicationRuleAndOperator" - }, - "Prefix": { - "type": "string" - }, - "TagFilter": { - "$ref": "#/definitions/TagFilter" - } - }, - "type": "object" - }, - "ReplicationTime": { - "additionalProperties": false, - "properties": { - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - }, - "Time": { - "$ref": "#/definitions/ReplicationTimeValue" - } - }, - "required": [ - "Status", - "Time" - ], - "type": "object" - }, - "ReplicationTimeValue": { - "additionalProperties": false, - "properties": { - "Minutes": { - "type": "integer" - } - }, - "required": [ - "Minutes" - ], - "type": "object" - }, - "RoutingRule": { - "additionalProperties": false, - "description": "Specifies the redirect behavior and when a redirect is applied.", - "properties": { - "RedirectRule": { - "$ref": "#/definitions/RedirectRule", - "description": "Container for redirect information. You can redirect requests to another host, to another page, or with another protocol. In the event of an error, you can specify a different error code to return." - }, - "RoutingRuleCondition": { - "$ref": "#/definitions/RoutingRuleCondition" - } - }, - "required": [ - "RedirectRule" - ], - "type": "object" - }, - "RoutingRuleCondition": { - "additionalProperties": false, - "anyOf": [ - { - "required": [ - "HttpErrorCodeReturnedEquals" - ] - }, - { - "required": [ - "KeyPrefixEquals" - ] - } - ], - "description": "A container for describing a condition that must be met for the specified redirect to apply.You must specify at least one of HttpErrorCodeReturnedEquals and KeyPrefixEquals", - "properties": { - "HttpErrorCodeReturnedEquals": { - "description": "The HTTP error code when the redirect is applied. ", - "type": "string" - }, - "KeyPrefixEquals": { - "description": "The object key name prefix when the redirect is applied.", - "type": "string" - } - }, - "type": "object" - }, - "Rule": { - "additionalProperties": false, - "description": "You must specify at least one of the following properties: AbortIncompleteMultipartUpload, ExpirationDate, ExpirationInDays, NoncurrentVersionExpirationInDays, NoncurrentVersionTransition, NoncurrentVersionTransitions, Transition, or Transitions.", - "properties": { - "AbortIncompleteMultipartUpload": { - "$ref": "#/definitions/AbortIncompleteMultipartUpload" - }, - "ExpirationDate": { - "$ref": "#/definitions/iso8601UTC" - }, - "ExpirationInDays": { - "type": "integer" - }, - "ExpiredObjectDeleteMarker": { - "type": "boolean" - }, - "Id": { - "maxLength": 255, - "type": "string" - }, - "NoncurrentVersionExpiration": { - "$ref": "#/definitions/NoncurrentVersionExpiration" - }, - "NoncurrentVersionExpirationInDays": { - "type": "integer" - }, - "NoncurrentVersionTransition": { - "$ref": "#/definitions/NoncurrentVersionTransition" - }, - "NoncurrentVersionTransitions": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/NoncurrentVersionTransition" - }, - "type": "array", - "uniqueItems": true - }, - "ObjectSizeGreaterThan": { - "maxLength": 20, - "pattern": "[0-9]+", - "type": "string" - }, - "ObjectSizeLessThan": { - "maxLength": 20, - "pattern": "[0-9]+", - "type": "string" - }, - "Prefix": { - "type": "string" - }, - "Status": { - "enum": [ - "Enabled", - "Disabled" - ], - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Transition": { - "$ref": "#/definitions/Transition" - }, - "Transitions": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Transition" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "S3KeyFilter": { - "additionalProperties": false, - "description": "A container for object key name prefix and suffix filtering rules.", - "properties": { - "Rules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/FilterRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "ServerSideEncryptionByDefault": { - "additionalProperties": false, - "description": "Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied.", - "properties": { - "KMSMasterKeyID": { - "description": "\"KMSMasterKeyID\" can only be used when you set the value of SSEAlgorithm as aws:kms or aws:kms:dsse.", - "type": "string" - }, - "SSEAlgorithm": { - "enum": [ - "aws:kms", - "AES256", - "aws:kms:dsse" - ], - "type": "string" - } - }, - "required": [ - "SSEAlgorithm" - ], - "type": "object" - }, - "ServerSideEncryptionRule": { - "additionalProperties": false, - "description": "Specifies the default server-side encryption configuration.", - "properties": { - "BucketKeyEnabled": { - "description": "Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the BucketKeyEnabled element to true causes Amazon S3 to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled.", - "type": "boolean" - }, - "ServerSideEncryptionByDefault": { - "$ref": "#/definitions/ServerSideEncryptionByDefault" - } - }, - "type": "object" - }, - "SourceSelectionCriteria": { - "additionalProperties": false, - "description": "A container that describes additional filters for identifying the source objects that you want to replicate.", - "properties": { - "ReplicaModifications": { - "$ref": "#/definitions/ReplicaModifications", - "description": "A filter that you can specify for selection for modifications on replicas." - }, - "SseKmsEncryptedObjects": { - "$ref": "#/definitions/SseKmsEncryptedObjects", - "description": "A container for filter information for the selection of Amazon S3 objects encrypted with AWS KMS." - } - }, - "type": "object" - }, - "SseKmsEncryptedObjects": { - "additionalProperties": false, - "description": "A container for filter information for the selection of S3 objects encrypted with AWS KMS.", - "properties": { - "Status": { - "description": "Specifies whether Amazon S3 replicates objects created with server-side encryption using a customer master key (CMK) stored in AWS Key Management Service.", - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "StorageClassAnalysis": { - "additionalProperties": false, - "description": "Specifies data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes for an Amazon S3 bucket.", - "properties": { - "DataExport": { - "$ref": "#/definitions/DataExport" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "description": "Tags to use to identify a subset of objects for an Amazon S3 bucket.", - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "Tiering": { - "additionalProperties": false, - "properties": { - "AccessTier": { - "description": "S3 Intelligent-Tiering access tier. See Storage class for automatically optimizing frequently and infrequently accessed objects for a list of access tiers in the S3 Intelligent-Tiering storage class.", - "enum": [ - "ARCHIVE_ACCESS", - "DEEP_ARCHIVE_ACCESS" - ], - "type": "string" - }, - "Days": { - "description": "The number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier. The minimum number of days specified for Archive Access tier must be at least 90 days and Deep Archive Access tier must be at least 180 days. The maximum can be up to 2 years (730 days).", - "type": "integer" - } - }, - "required": [ - "AccessTier", - "Days" - ], - "type": "object" - }, - "TopicConfiguration": { - "additionalProperties": false, - "description": "The topic to which notifications are sent and the events for which notifications are generated.", - "properties": { - "Event": { - "description": "The Amazon S3 bucket event about which to send notifications.", - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter", - "description": "The filtering rules that determine for which objects to send notifications." - }, - "Topic": { - "description": "The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 publishes a message when it detects events of the specified type.", - "type": "string" - } - }, - "required": [ - "Event", - "Topic" - ], - "type": "object" - }, - "Transition": { - "additionalProperties": false, - "description": "You must specify at least one of \"TransitionDate\" and \"TransitionInDays\"", - "properties": { - "StorageClass": { - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "Glacier", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "STANDARD_IA" - ], - "type": "string" - }, - "TransitionDate": { - "$ref": "#/definitions/iso8601UTC" - }, - "TransitionInDays": { - "type": "integer" - } - }, - "required": [ - "StorageClass" - ], - "type": "object" - }, - "VersioningConfiguration": { - "additionalProperties": false, - "description": "Describes the versioning state of an Amazon S3 bucket.", - "properties": { - "Status": { - "default": "Suspended", - "description": "The versioning state of the bucket.", - "enum": [ - "Enabled", - "Suspended" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "WebsiteConfiguration": { - "additionalProperties": false, - "description": "Specifies website configuration parameters for an Amazon S3 bucket.", - "properties": { - "ErrorDocument": { - "description": "The name of the error document for the website.", - "type": "string" - }, - "IndexDocument": { - "description": "The name of the index document for the website.", - "type": "string" - }, - "RedirectAllRequestsTo": { - "$ref": "#/definitions/RedirectAllRequestsTo" - }, - "RoutingRules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/RoutingRule" - }, - "type": "array" - } - }, - "type": "object" - }, - "iso8601UTC": { - "description": "The date value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ssZ)", - "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", - "type": "string" - } - }, - "description": "Resource Type definition for AWS::S3::Bucket", - "handlers": { - "create": { - "permissions": [ - "s3:CreateBucket", - "s3:PutBucketTagging", - "s3:PutAnalyticsConfiguration", - "s3:PutEncryptionConfiguration", - "s3:PutBucketCORS", - "s3:PutInventoryConfiguration", - "s3:PutLifecycleConfiguration", - "s3:PutMetricsConfiguration", - "s3:PutBucketNotification", - "s3:PutBucketReplication", - "s3:PutBucketWebsite", - "s3:PutAccelerateConfiguration", - "s3:PutBucketPublicAccessBlock", - "s3:PutReplicationConfiguration", - "s3:PutObjectAcl", - "s3:PutBucketObjectLockConfiguration", - "s3:GetBucketAcl", - "s3:ListBucket", - "iam:PassRole", - "s3:DeleteObject", - "s3:PutBucketLogging", - "s3:PutBucketVersioning", - "s3:PutObjectLockConfiguration", - "s3:PutBucketOwnershipControls", - "s3:PutIntelligentTieringConfiguration" - ] - }, - "delete": { - "permissions": [ - "s3:DeleteBucket", - "s3:ListBucket" - ] - }, - "list": { - "permissions": [ - "s3:ListAllMyBuckets" - ] - }, - "read": { - "permissions": [ - "s3:GetAccelerateConfiguration", - "s3:GetLifecycleConfiguration", - "s3:GetBucketPublicAccessBlock", - "s3:GetAnalyticsConfiguration", - "s3:GetBucketCORS", - "s3:GetEncryptionConfiguration", - "s3:GetInventoryConfiguration", - "s3:GetBucketLogging", - "s3:GetMetricsConfiguration", - "s3:GetBucketNotification", - "s3:GetBucketVersioning", - "s3:GetReplicationConfiguration", - "S3:GetBucketWebsite", - "s3:GetBucketPublicAccessBlock", - "s3:GetBucketObjectLockConfiguration", - "s3:GetBucketTagging", - "s3:GetBucketOwnershipControls", - "s3:GetIntelligentTieringConfiguration", - "s3:ListBucket" - ] - }, - "update": { - "permissions": [ - "s3:PutBucketAcl", - "s3:PutBucketTagging", - "s3:PutAnalyticsConfiguration", - "s3:PutEncryptionConfiguration", - "s3:PutBucketCORS", - "s3:PutInventoryConfiguration", - "s3:PutLifecycleConfiguration", - "s3:PutMetricsConfiguration", - "s3:PutBucketNotification", - "s3:PutBucketReplication", - "s3:PutBucketWebsite", - "s3:PutAccelerateConfiguration", - "s3:PutBucketPublicAccessBlock", - "s3:PutReplicationConfiguration", - "s3:PutBucketOwnershipControls", - "s3:PutIntelligentTieringConfiguration", - "s3:DeleteBucketWebsite", - "s3:PutBucketLogging", - "s3:PutBucketVersioning", - "s3:PutObjectLockConfiguration", - "s3:PutBucketObjectLockConfiguration", - "s3:DeleteBucketAnalyticsConfiguration", - "s3:DeleteBucketCors", - "s3:DeleteBucketMetricsConfiguration", - "s3:DeleteBucketEncryption", - "s3:DeleteBucketLifecycle", - "s3:DeleteBucketReplication", - "iam:PassRole", - "s3:ListBucket" - ] - } - }, - "primaryIdentifier": [ - "/properties/BucketName" - ], - "properties": { - "AccelerateConfiguration": { - "$ref": "#/definitions/AccelerateConfiguration", - "description": "Configuration for the transfer acceleration state." - }, - "AccessControl": { - "description": "A canned access control list (ACL) that grants predefined permissions to the bucket.", - "enum": [ - "AuthenticatedRead", - "AwsExecRead", - "BucketOwnerFullControl", - "BucketOwnerRead", - "LogDeliveryWrite", - "Private", - "PublicRead", - "PublicReadWrite" - ], - "type": "string" - }, - "AnalyticsConfigurations": { - "description": "The configuration and any analyses for the analytics filter of an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/AnalyticsConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "Arn": { - "$ref": "#/definitions/Arn", - "description": "The Amazon Resource Name (ARN) of the specified bucket.", - "examples": [ - "arn:aws:s3:::mybucket" - ] - }, - "BucketEncryption": { - "$ref": "#/definitions/BucketEncryption" - }, - "BucketName": { - "description": "A name for the bucket. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][a-z0-9.-]*[a-z0-9]$", - "type": "string" - }, - "CorsConfiguration": { - "$ref": "#/definitions/CorsConfiguration", - "description": "Rules that define cross-origin resource sharing of objects in this bucket." - }, - "DomainName": { - "description": "The IPv4 DNS name of the specified bucket.", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.amazonaws.com" - ], - "type": "string" - }, - "DualStackDomainName": { - "description": "The IPv6 DNS name of the specified bucket. For more information about dual-stack endpoints, see [Using Amazon S3 Dual-Stack Endpoints](https://docs.aws.amazon.com/AmazonS3/latest/dev/dual-stack-endpoints.html).", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com" - ], - "type": "string" - }, - "IntelligentTieringConfigurations": { - "description": "Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/IntelligentTieringConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "InventoryConfigurations": { - "description": "The inventory configuration for an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/InventoryConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "LifecycleConfiguration": { - "$ref": "#/definitions/LifecycleConfiguration", - "description": "Rules that define how Amazon S3 manages objects during their lifetime." - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration", - "description": "Settings that define where logs are stored." - }, - "MetricsConfigurations": { - "description": "Settings that define a metrics configuration for the CloudWatch request metrics from the bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/MetricsConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "NotificationConfiguration": { - "$ref": "#/definitions/NotificationConfiguration", - "description": "Configuration that defines how Amazon S3 handles bucket notifications." - }, - "ObjectLockConfiguration": { - "$ref": "#/definitions/ObjectLockConfiguration", - "description": "Places an Object Lock configuration on the specified bucket." - }, - "ObjectLockEnabled": { - "description": "Indicates whether this bucket has an Object Lock configuration enabled.", - "type": "boolean" - }, - "OwnershipControls": { - "$ref": "#/definitions/OwnershipControls", - "description": "Specifies the container element for object ownership rules." - }, - "PublicAccessBlockConfiguration": { - "$ref": "#/definitions/PublicAccessBlockConfiguration" - }, - "RegionalDomainName": { - "description": "Returns the regional domain name of the specified bucket.", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.us-east-2.amazonaws.com" - ], - "type": "string" - }, - "ReplicationConfiguration": { - "$ref": "#/definitions/ReplicationConfiguration", - "description": "Configuration for replicating objects in an S3 bucket." - }, - "Tags": { - "description": "An arbitrary set of tags (key-value pairs) for this S3 bucket.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VersioningConfiguration": { - "$ref": "#/definitions/VersioningConfiguration" - }, - "WebsiteConfiguration": { - "$ref": "#/definitions/WebsiteConfiguration" - }, - "WebsiteURL": { - "description": "The Amazon S3 website endpoint for the specified bucket.", - "examples": [ - "Example (IPv4): http://mystack-mybucket-kdwwxmddtr2g.s3-website-us-east-2.amazonaws.com/", - "Example (IPv6): http://mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com/" - ], - "format": "uri", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/DomainName", - "/properties/DualStackDomainName", - "/properties/RegionalDomainName", - "/properties/WebsiteURL" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::S3::Bucket", - "writeOnlyProperties": [ - "/properties/AccessControl", - "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionExpirationInDays", - "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionTransition", - "/properties/LifecycleConfiguration/Rules/*/Transition", - "/properties/ReplicationConfiguration/Rules/*/Prefix", - "/properties/LifecycleConfiguration/Rules/*/ExpiredObjectDeleteMarker" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-servicecatalogappregistry-application.json new file mode 100644 index 0000000000..b04a7d7289 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-servicecatalogappregistry-application.json @@ -0,0 +1,100 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Name" + ] + ], + "additionalProperties": false, + "definitions": { + "Tags": { + "additionalProperties": false, + "maxProperties": 50, + "patternProperties": { + "^[a-zA-Z+-=._:/]+$": { + "maxLength": 256, + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application", + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-application.html", + "handlers": { + "create": { + "permissions": [ + "servicecatalog:CreateApplication", + "servicecatalog:TagResource", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "servicecatalog:DeleteApplication" + ] + }, + "list": { + "permissions": [ + "servicecatalog:ListApplications" + ] + }, + "read": { + "permissions": [ + "servicecatalog:GetApplication" + ] + }, + "update": { + "permissions": [ + "servicecatalog:GetApplication", + "servicecatalog:ListTagsForResource", + "servicecatalog:TagResource", + "servicecatalog:UntagResource", + "servicecatalog:UpdateApplication", + "iam:CreateServiceLinkedRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", + "type": "string" + }, + "Description": { + "description": "The description of the application. ", + "maxLength": 1024, + "type": "string" + }, + "Id": { + "pattern": "[a-z0-9]{26}", + "type": "string" + }, + "Name": { + "description": "The name of the application. ", + "maxLength": 256, + "minLength": 1, + "pattern": "\\w+", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ServiceCatalogAppRegistry::Application" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/__init__.py b/src/cfnlint/data/schemas/providers/us_gov_east_1/__init__.py index bf28e211b6..e0fc4625ef 100644 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/__init__.py @@ -148,6 +148,7 @@ "AWS::IoT::ThingType", "AWS::GuardDuty::Member", "AWS::CloudFormation::CustomResource", + "AWS::FIS::TargetAccountConfiguration", "AWS::KinesisAnalytics::ApplicationOutput", "AWS::WAFv2::RuleGroup", "AWS::ElastiCache::ParameterGroup", @@ -303,6 +304,7 @@ "AWS::ServiceCatalog::AcceptedPortfolioShare", "AWS::Route53Resolver::FirewallRuleGroupAssociation", "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", "AWS::EC2::Subnet", "AWS::S3ObjectLambda::AccessPoint", "AWS::WAF::Rule", @@ -488,6 +490,7 @@ "AWS::EC2::IPAMAllocation", "AWS::WorkSpaces::Workspace", "AWS::Inspector::AssessmentTemplate", + "AWS::EMR::Studio", "AWS::EC2::InstanceConnectEndpoint", "AWS::DirectoryService::MicrosoftAD", "AWS::DataSync::LocationObjectStorage", @@ -584,7 +587,6 @@ "aws-guardduty-filter.json", "aws-ram-resourceshare.json", "aws-dynamodb-table.json", - "aws-ec2-securitygroupegress.json", "aws-ec2-localgatewayroutetablevpcassociation.json", "aws-config-organizationconfigrule.json", "aws-config-configurationrecorder.json", @@ -593,7 +595,6 @@ "aws-ec2-ipampoolcidr.json", "aws-iot-topicruledestination.json", "aws-redshift-clustersubnetgroup.json", - "aws-rds-dbinstance.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-ec2-networkacl.json", "aws-lambda-eventsourcemapping.json", @@ -632,7 +633,6 @@ "aws-appstream-appblockbuilder.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", - "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-fsx-storagevirtualmachine.json", @@ -654,11 +654,11 @@ "aws-cassandra-table.json", "aws-cloudformation-moduledefaultversion.json", "aws-sso-permissionset.json", + "aws-glue-job.json", "aws-servicecatalog-cloudformationprovisionedproduct.json", + "aws-glue-table.json", "aws-logs-metricfilter.json", - "aws-lambda-function.json", "aws-datasync-locationfsxlustre.json", - "aws-sagemaker-app.json", "aws-cloudtrail-trail.json", "aws-ec2-gatewayroutetableassociation.json", "aws-wafv2-ipset.json", @@ -674,16 +674,16 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", - "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-cloudwatch-dashboard.json", "aws-cloudwatch-alarm.json", "aws-iot-thingtype.json", "aws-guardduty-member.json", "aws-cloudformation-customresource.json", + "aws-fis-targetaccountconfiguration.json", "aws-kinesisanalytics-applicationoutput.json", "aws-elasticache-parametergroup.json", - "aws-codedeploy-deploymentgroup.json", + "aws-glue-classifier.json", "aws-cloudformation-stackset.json", "aws-fis-experimenttemplate.json", "aws-codecommit-repository.json", @@ -737,7 +737,6 @@ "aws-appstream-application.json", "aws-datasync-locationnfs.json", "aws-kinesisanalyticsv2-applicationoutput.json", - "aws-sagemaker-domain.json", "aws-greengrass-coredefinitionversion.json", "aws-certificatemanager-certificate.json", "aws-glue-schemaversionmetadata.json", @@ -749,7 +748,6 @@ "aws-redshift-clustersecuritygroupingress.json", "aws-servicecatalogappregistry-attributegroupassociation.json", "aws-elasticloadbalancingv2-loadbalancer.json", - "aws-opensearchservice-domain.json", "aws-servicediscovery-instance.json", "aws-elasticsearch-domain.json", "aws-servicecatalog-stacksetconstraint.json", @@ -776,7 +774,7 @@ "aws-codedeploy-deploymentconfig.json", "aws-networkmanager-globalnetwork.json", "aws-stepfunctions-statemachineversion.json", - "aws-servicecatalogappregistry-application.json", + "aws-glue-database.json", "aws-neptune-dbcluster.json", "aws-waf-bytematchset.json", "aws-dms-replicationtask.json", @@ -791,6 +789,7 @@ "aws-route53resolver-resolverdnssecconfig.json", "aws-route53resolver-firewallrulegroupassociation.json", "aws-route53resolver-resolverqueryloggingconfig.json", + "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-subnet.json", "aws-s3objectlambda-accesspoint.json", "aws-waf-rule.json", @@ -800,6 +799,7 @@ "aws-opsworks-volume.json", "aws-iam-usertogroupaddition.json", "aws-ec2-vpngatewayroutepropagation.json", + "aws-glue-crawler.json", "aws-apigateway-method.json", "aws-ssm-patchbaseline.json", "aws-servicediscovery-service.json", @@ -812,9 +812,7 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", - "aws-emr-cluster.json", "aws-codepipeline-webhook.json", - "aws-rds-dbcluster.json", "aws-servicecatalog-resourceupdateconstraint.json", "aws-transfer-agreement.json", "aws-xray-group.json", @@ -828,7 +826,10 @@ "aws-ec2-localgatewayroutetable.json", "aws-sagemaker-appimageconfig.json", "aws-applicationautoscaling-scalingpolicy.json", + "aws-emr-studiosessionmapping.json", "aws-cloudformation-macro.json", + "aws-secretsmanager-secret.json", + "aws-route53resolver-resolverconfig.json", "aws-elasticache-user.json", "aws-sagemaker-image.json", "aws-logs-subscriptionfilter.json", @@ -837,7 +838,6 @@ "aws-datasync-locations3.json", "aws-fsx-datarepositoryassociation.json", "aws-route53resolver-resolverqueryloggingconfigassociation.json", - "aws-lambda-eventinvokeconfig.json", "aws-rds-optiongroup.json", "aws-opsworks-userprofile.json", "aws-glue-schema.json", @@ -854,6 +854,7 @@ "aws-iot-scheduledaudit.json", "aws-sso-instanceaccesscontrolattributeconfiguration.json", "aws-cloudwatch-anomalydetector.json", + "aws-ec2-subnetnetworkaclassociation.json", "aws-servicecatalog-serviceaction.json", "aws-appstream-entitlement.json", "aws-iot-mitigationaction.json", @@ -920,6 +921,7 @@ "aws-acmpca-certificate.json", "aws-ec2-ipamallocation.json", "aws-workspaces-workspace.json", + "aws-emr-studio.json", "aws-ec2-instanceconnectendpoint.json", "aws-directoryservice-microsoftad.json", "aws-datasync-locationobjectstorage.json", @@ -953,6 +955,7 @@ "aws-rds-dbsubnetgroup.json", "aws-amazonmq-configuration.json", "aws-appconfig-deployment.json", + "aws-accessanalyzer-analyzer.json", "aws-ec2-ec2fleet.json", "aws-greengrass-resourcedefinition.json", "aws-dms-replicationinstance.json", @@ -960,6 +963,7 @@ "aws-ec2-launchtemplate.json", "aws-datasync-locationfsxontap.json", "aws-lambda-version.json", + "aws-ec2-dhcpoptions.json", "aws-ec2-ipampool.json", "aws-kinesis-streamconsumer.json", "aws-licensemanager-license.json", @@ -968,7 +972,6 @@ "aws-cloudformation-resourceversion.json", "aws-apigatewayv2-stage.json", "aws-rds-dbparametergroup.json", - "aws-securityhub-hub.json", "aws-s3-accesspoint.json", "aws-greengrass-groupversion.json", "aws-ec2-trafficmirrorsession.json", diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-accessanalyzer-analyzer.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-accessanalyzer-analyzer.json deleted file mode 100644 index 1f25416cce..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-accessanalyzer-analyzer.json +++ /dev/null @@ -1,191 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AnalyzerName", - "/properties/Type" - ], - "definitions": { - "ArchiveRule": { - "additionalProperties": false, - "description": "An Access Analyzer archive rule. Archive rules automatically archive new findings that meet the criteria you define when you create the rule.", - "properties": { - "Filter": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Filter" - }, - "minItems": 1, - "type": "array" - }, - "RuleName": { - "description": "The archive rule name", - "type": "string" - } - }, - "required": [ - "Filter", - "RuleName" - ], - "type": "object" - }, - "Filter": { - "additionalProperties": false, - "properties": { - "Contains": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "Eq": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "Exists": { - "type": "boolean" - }, - "Neq": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "Property": { - "type": "string" - } - }, - "required": [ - "Property" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "description": "A key-value pair to associate with a resource.", - "properties": { - "Key": { - "description": "The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", - "maxLength": 127, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "The value for the tag. You can specify a value that is 1 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "The AWS::AccessAnalyzer::Analyzer type specifies an analyzer of the user's account", - "handlers": { - "create": { - "permissions": [ - "access-analyzer:CreateAnalyzer", - "access-analyzer:TagResource", - "iam:CreateServiceLinkedRole", - "organizations:ListAWSServiceAccessForOrganization", - "organizations:ListDelegatedAdministrators" - ] - }, - "delete": { - "permissions": [ - "access-analyzer:DeleteAnalyzer" - ] - }, - "list": { - "permissions": [ - "access-analyzer:ListAnalyzers" - ] - }, - "read": { - "permissions": [ - "access-analyzer:ListAnalyzers", - "access-analyzer:GetAnalyzer", - "access-analyzer:ListArchiveRules" - ] - }, - "update": { - "permissions": [ - "access-analyzer:CreateArchiveRule", - "access-analyzer:DeleteArchiveRule", - "access-analyzer:ListAnalyzers", - "access-analyzer:TagResource", - "access-analyzer:UntagResource", - "access-analyzer:UpdateArchiveRule" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "AnalyzerName": { - "description": "Analyzer name", - "maxLength": 1024, - "minLength": 1, - "type": "string" - }, - "ArchiveRules": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ArchiveRule" - }, - "type": "array" - }, - "Arn": { - "description": "Amazon Resource Name (ARN) of the analyzer", - "maxLength": 1600, - "minLength": 1, - "type": "string" - }, - "Tags": { - "description": "An array of key-value pairs to apply to this resource.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "description": "The type of the analyzer, must be ACCOUNT or ORGANIZATION", - "maxLength": 1024, - "minLength": 0, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "Type" - ], - "resourceLink": { - "mappings": { - "AnalyzerName": "/AnalyzerName" - }, - "templateUri": "/access-analyzer/home?region=${awsRegion}#/analyzer/${AnalyzerName}" - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-accessanalyzer.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::AccessAnalyzer::Analyzer" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-codedeploy-deploymentgroup.json new file mode 100644 index 0000000000..208990a115 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-codedeploy-deploymentgroup.json @@ -0,0 +1,523 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentGroupName", + "/properties/ApplicationName" + ], + "definitions": { + "Alarm": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AlarmConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/Alarm" + }, + "type": "array", + "uniqueItems": true + }, + "Enabled": { + "type": "boolean" + }, + "IgnorePollAlarmFailure": { + "type": "boolean" + } + }, + "type": "object" + }, + "AutoRollbackConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Events": { + "items": { + "enum": [ + "DEPLOYMENT_FAILURE", + "DEPLOYMENT_STOP_ON_ALARM", + "DEPLOYMENT_STOP_ON_REQUEST" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "BlueGreenDeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "DeploymentReadyOption": { + "$ref": "#/definitions/DeploymentReadyOption" + }, + "GreenFleetProvisioningOption": { + "$ref": "#/definitions/GreenFleetProvisioningOption" + }, + "TerminateBlueInstancesOnDeploymentSuccess": { + "$ref": "#/definitions/BlueInstanceTerminationOption" + } + }, + "type": "object" + }, + "BlueInstanceTerminationOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "TerminationWaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "Deployment": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "IgnoreApplicationStopFailures": { + "type": "boolean" + }, + "Revision": { + "$ref": "#/definitions/RevisionLocation" + } + }, + "required": [ + "Revision" + ], + "type": "object" + }, + "DeploymentReadyOption": { + "additionalProperties": false, + "properties": { + "ActionOnTimeout": { + "type": "string" + }, + "WaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentStyle": { + "additionalProperties": false, + "properties": { + "DeploymentOption": { + "enum": [ + "WITH_TRAFFIC_CONTROL", + "WITHOUT_TRAFFIC_CONTROL" + ], + "type": "string" + }, + "DeploymentType": { + "enum": [ + "IN_PLACE", + "BLUE_GREEN" + ], + "type": "string" + } + }, + "type": "object" + }, + "EC2TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "EC2TagSet": { + "additionalProperties": false, + "properties": { + "Ec2TagSetList": { + "items": { + "$ref": "#/definitions/EC2TagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EC2TagSetListObject": { + "additionalProperties": false, + "properties": { + "Ec2TagGroup": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ECSService": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + } + }, + "required": [ + "ServiceName", + "ClusterName" + ], + "type": "object" + }, + "ELBInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "GitHubLocation": { + "additionalProperties": false, + "properties": { + "CommitId": { + "type": "string" + }, + "Repository": { + "type": "string" + } + }, + "required": [ + "Repository", + "CommitId" + ], + "type": "object" + }, + "GreenFleetProvisioningOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "type": "object" + }, + "LoadBalancerInfo": { + "additionalProperties": false, + "properties": { + "ElbInfoList": { + "items": { + "$ref": "#/definitions/ELBInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupPairInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupPairInfo" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSet": { + "additionalProperties": false, + "properties": { + "OnPremisesTagSetList": { + "items": { + "$ref": "#/definitions/OnPremisesTagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSetListObject": { + "additionalProperties": false, + "properties": { + "OnPremisesTagGroup": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "RevisionLocation": { + "additionalProperties": false, + "properties": { + "GitHubLocation": { + "$ref": "#/definitions/GitHubLocation" + }, + "RevisionType": { + "type": "string" + }, + "S3Location": { + "$ref": "#/definitions/S3Location" + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "BundleType": { + "type": "string" + }, + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupPairInfo": { + "additionalProperties": false, + "properties": { + "ProdTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + }, + "TargetGroups": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TestTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + } + }, + "type": "object" + }, + "TrafficRoute": { + "additionalProperties": false, + "properties": { + "ListenerArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerEvents": { + "items": { + "enum": [ + "DeploymentStart", + "DeploymentSuccess", + "DeploymentFailure", + "DeploymentStop", + "DeploymentRollback", + "DeploymentReady", + "InstanceStart", + "InstanceSuccess", + "InstanceFailure", + "InstanceReady" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "TriggerName": { + "type": "string" + }, + "TriggerTargetArn": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AlarmConfiguration": { + "$ref": "#/definitions/AlarmConfiguration" + }, + "ApplicationName": { + "type": "string" + }, + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AutoRollbackConfiguration" + }, + "AutoScalingGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BlueGreenDeploymentConfiguration": { + "$ref": "#/definitions/BlueGreenDeploymentConfiguration" + }, + "Deployment": { + "$ref": "#/definitions/Deployment" + }, + "DeploymentConfigName": { + "type": "string" + }, + "DeploymentGroupName": { + "type": "string" + }, + "DeploymentStyle": { + "$ref": "#/definitions/DeploymentStyle" + }, + "ECSServices": { + "items": { + "$ref": "#/definitions/ECSService" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagFilters": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagSet": { + "$ref": "#/definitions/EC2TagSet" + }, + "Id": { + "type": "string" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/LoadBalancerInfo" + }, + "OnPremisesInstanceTagFilters": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "OnPremisesTagSet": { + "$ref": "#/definitions/OnPremisesTagSet" + }, + "OutdatedInstancesStrategy": { + "type": "string" + }, + "ServiceRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TerminationHookEnabled": { + "type": "boolean" + }, + "TriggerConfigurations": { + "items": { + "$ref": "#/definitions/TriggerConfig" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "ServiceRoleArn" + ], + "typeName": "AWS::CodeDeploy::DeploymentGroup" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-dhcpoptions.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-dhcpoptions.json deleted file mode 100644 index 51255a32c1..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-dhcpoptions.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/NetbiosNameServers", - "/properties/NetbiosNodeType", - "/properties/NtpServers", - "/properties/DomainName", - "/properties/DomainNameServers" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EC2::DHCPOptions", - "handlers": { - "create": { - "permissions": [ - "ec2:CreateDhcpOptions", - "ec2:DescribeDhcpOptions", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteDhcpOptions", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeDhcpOptions" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeDhcpOptions", - "ec2:DescribeTags" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTags", - "ec2:DescribeDhcpOptions", - "ec2:DeleteTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/DhcpOptionsId" - ], - "properties": { - "DhcpOptionsId": { - "type": "string" - }, - "DomainName": { - "description": "This value is used to complete unqualified DNS hostnames.", - "type": "string" - }, - "DomainNameServers": { - "description": "The IPv4 addresses of up to four domain name servers, or AmazonProvidedDNS.", - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "NetbiosNameServers": { - "description": "The IPv4 addresses of up to four NetBIOS name servers.", - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "NetbiosNodeType": { - "description": "The NetBIOS node type (1, 2, 4, or 8).", - "enum": [ - "1", - "2", - "4", - "8" - ], - "type": "integer" - }, - "NtpServers": { - "description": "The IPv4 addresses of up to four Network Time Protocol (NTP) servers.", - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "description": "Any tags assigned to the DHCP options set.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/DhcpOptionsId" - ], - "taggable": true, - "typeName": "AWS::EC2::DHCPOptions" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-securitygroupegress.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-securitygroupegress.json new file mode 100644 index 0000000000..bda5e89487 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-securitygroupegress.json @@ -0,0 +1,57 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/IpProtocol", + "/properties/DestinationSecurityGroupId", + "/properties/ToPort", + "/properties/CidrIp", + "/properties/FromPort", + "/properties/GroupId", + "/properties/CidrIpv6", + "/properties/DestinationPrefixListId" + ], + "description": "Resource Type definition for AWS::EC2::SecurityGroupEgress", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CidrIp": { + "type": "string" + }, + "CidrIpv6": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DestinationPrefixListId": { + "type": "string" + }, + "DestinationSecurityGroupId": { + "type": "string" + }, + "FromPort": { + "type": "integer" + }, + "GroupId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IpProtocol": { + "type": "string" + }, + "ToPort": { + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "IpProtocol", + "GroupId" + ], + "typeName": "AWS::EC2::SecurityGroupEgress" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-subnetnetworkaclassociation.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-subnetnetworkaclassociation.json deleted file mode 100644 index 190241b970..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-subnetnetworkaclassociation.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SubnetId", - "/properties/NetworkAclId" - ], - "description": "Resource Type definition for AWS::EC2::SubnetNetworkAclAssociation", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AssociationId": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "NetworkAclId": { - "type": "string" - }, - "SubnetId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/AssociationId" - ], - "required": [ - "NetworkAclId", - "SubnetId" - ], - "typeName": "AWS::EC2::SubnetNetworkAclAssociation" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-emr-cluster.json new file mode 100644 index 0000000000..7ce37fccb6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-emr-cluster.json @@ -0,0 +1,858 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Steps", + "/properties/EbsRootVolumeSize", + "/properties/SecurityConfiguration", + "/properties/ScaleDownBehavior", + "/properties/Configurations", + "/properties/ReleaseLabel", + "/properties/BootstrapActions", + "/properties/EbsRootVolumeIops", + "/properties/KerberosAttributes", + "/properties/ServiceRole", + "/properties/LogEncryptionKmsKeyId", + "/properties/Name", + "/properties/EbsRootVolumeThroughput", + "/properties/JobFlowRole", + "/properties/AdditionalInfo", + "/properties/LogUri", + "/properties/CustomAmiId", + "/properties/PlacementGroupConfigs", + "/properties/OSReleaseLabel", + "/properties/AutoScalingRole", + "/properties/Applications" + ], + "definitions": { + "Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ScalingRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/ScriptBootstrapActionConfig" + } + }, + "required": [ + "ScriptBootstrapAction", + "Name" + ], + "type": "object" + }, + "CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "EvaluationPeriods": { + "type": "integer" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "integer" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "ComparisonOperator", + "Period", + "Threshold" + ], + "type": "object" + }, + "ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "integer" + }, + "MaximumCoreCapacityUnits": { + "type": "integer" + }, + "MaximumOnDemandCapacityUnits": { + "type": "integer" + }, + "MinimumCapacityUnits": { + "type": "integer" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "UnitType", + "MaximumCapacityUnits", + "MinimumCapacityUnits" + ], + "type": "object" + }, + "Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "integer" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/EbsBlockDeviceConfig" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/KeyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/InstanceTypeConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchSpecifications": { + "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "integer" + }, + "TargetSpotCapacity": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/OnDemandProvisioningSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/SpotProvisioningSpecification" + } + }, + "type": "object" + }, + "InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceType": { + "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", + "type": "string" + }, + "WeightedCapacity": { + "type": "integer" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/ComputeLimits" + } + }, + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "PlacementGroupConfig": { + "additionalProperties": false, + "properties": { + "InstanceRole": { + "type": "string" + }, + "PlacementStrategy": { + "type": "string" + } + }, + "required": [ + "InstanceRole" + ], + "type": "object" + }, + "PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/ScalingTrigger" + } + }, + "required": [ + "Action", + "Trigger", + "Name" + ], + "type": "object" + }, + "ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BlockDurationMinutes": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "integer" + } + }, + "required": [ + "TimeoutDurationMinutes", + "TimeoutAction" + ], + "type": "object" + }, + "StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "integer" + }, + "SizeInGB": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EMR::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/Application" + }, + "type": "array", + "uniqueItems": true + }, + "AutoScalingRole": { + "type": "string" + }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AutoTerminationPolicy" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/BootstrapActionConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeIops": { + "type": "integer" + }, + "EbsRootVolumeSize": { + "type": "integer" + }, + "EbsRootVolumeThroughput": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Instances": { + "$ref": "#/definitions/JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/KerberosAttributes" + }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, + "LogUri": { + "type": "string" + }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/ManagedScalingPolicy" + }, + "MasterPublicDNS": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OSReleaseLabel": { + "type": "string" + }, + "PlacementGroupConfigs": { + "items": { + "$ref": "#/definitions/PlacementGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "StepConcurrencyLevel": { + "type": "integer" + }, + "Steps": { + "items": { + "$ref": "#/definitions/StepConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/MasterPublicDNS" + ], + "required": [ + "Instances", + "ServiceRole", + "JobFlowRole", + "Name" + ], + "typeName": "AWS::EMR::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-emr-studiosessionmapping.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-emr-studiosessionmapping.json deleted file mode 100644 index bfb5c89509..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-emr-studiosessionmapping.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StudioId", - "/properties/IdentityType", - "/properties/IdentityName" - ], - "definitions": { - "IamPolicyArn": { - "pattern": "^arn:aws(-(cn|us-gov))?:iam::([0-9]{12})?:policy\\/[^.]+$", - "type": "string" - } - }, - "description": "An example resource schema demonstrating some basic constructs and validation rules.", - "documentationUrl": "https://docs.aws.amazon.com/cli/latest/reference/emr/create-studio-session-mapping.html", - "handlers": { - "create": { - "permissions": [ - "elasticmapreduce:CreateStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:ListDirectoryAssociations", - "sso:GetProfile", - "sso:ListProfiles", - "sso:AssociateProfile" - ] - }, - "delete": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "elasticmapreduce:DeleteStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance", - "sso:DescribeInstance", - "sso:ListDirectoryAssociations", - "sso:GetProfile", - "sso:ListProfiles", - "sso:DisassociateProfile" - ] - }, - "list": { - "permissions": [ - "elasticmapreduce:ListStudioSessionMappings" - ] - }, - "read": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance", - "sso:DescribeInstance" - ] - }, - "update": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "elasticmapreduce:UpdateStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance", - "sso:DescribeInstance" - ] - } - }, - "primaryIdentifier": [ - "/properties/StudioId", - "/properties/IdentityType", - "/properties/IdentityName" - ], - "properties": { - "IdentityName": { - "description": "The name of the user or group. For more information, see UserName and DisplayName in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId must be specified.", - "type": "string" - }, - "IdentityType": { - "description": "Specifies whether the identity to map to the Studio is a user or a group.", - "enum": [ - "USER", - "GROUP" - ], - "type": "string" - }, - "SessionPolicyArn": { - "$ref": "#/definitions/IamPolicyArn", - "description": "The Amazon Resource Name (ARN) for the session policy that will be applied to the user or group. Session policies refine Studio user permissions without the need to use multiple IAM user roles." - }, - "StudioId": { - "description": "The ID of the Amazon EMR Studio to which the user or group will be mapped.", - "maxLength": 256, - "minLength": 4, - "pattern": "^es-[0-9A-Z]+", - "type": "string" - } - }, - "required": [ - "StudioId", - "IdentityName", - "IdentityType", - "SessionPolicyArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::EMR::StudioSessionMapping" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-classifier.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-classifier.json deleted file mode 100644 index 098d909845..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-classifier.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "CsvClassifier": { - "additionalProperties": false, - "properties": { - "AllowSingleColumn": { - "type": "boolean" - }, - "ContainsHeader": { - "type": "string" - }, - "Delimiter": { - "type": "string" - }, - "DisableValueTrimming": { - "type": "boolean" - }, - "Header": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Name": { - "type": "string" - }, - "QuoteSymbol": { - "type": "string" - } - }, - "type": "object" - }, - "GrokClassifier": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "CustomPatterns": { - "type": "string" - }, - "GrokPattern": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "GrokPattern", - "Classification" - ], - "type": "object" - }, - "JsonClassifier": { - "additionalProperties": false, - "properties": { - "JsonPath": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "JsonPath" - ], - "type": "object" - }, - "XMLClassifier": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "RowTag": { - "type": "string" - } - }, - "required": [ - "RowTag", - "Classification" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::Glue::Classifier", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CsvClassifier": { - "$ref": "#/definitions/CsvClassifier" - }, - "GrokClassifier": { - "$ref": "#/definitions/GrokClassifier" - }, - "Id": { - "type": "string" - }, - "JsonClassifier": { - "$ref": "#/definitions/JsonClassifier" - }, - "XMLClassifier": { - "$ref": "#/definitions/XMLClassifier" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "typeName": "AWS::Glue::Classifier" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-crawler.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-crawler.json deleted file mode 100644 index ab4b1beb08..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-crawler.json +++ /dev/null @@ -1,232 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "CatalogTarget": { - "additionalProperties": false, - "properties": { - "DatabaseName": { - "type": "string" - }, - "Tables": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "DynamoDBTarget": { - "additionalProperties": false, - "properties": { - "Path": { - "type": "string" - } - }, - "type": "object" - }, - "JdbcTarget": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Exclusions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Path": { - "type": "string" - } - }, - "type": "object" - }, - "MongoDBTarget": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Path": { - "type": "string" - } - }, - "type": "object" - }, - "RecrawlPolicy": { - "additionalProperties": false, - "properties": { - "RecrawlBehavior": { - "type": "string" - } - }, - "type": "object" - }, - "S3Target": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "DlqEventQueueArn": { - "type": "string" - }, - "EventQueueArn": { - "type": "string" - }, - "Exclusions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Path": { - "type": "string" - }, - "SampleSize": { - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "properties": { - "ScheduleExpression": { - "type": "string" - } - }, - "type": "object" - }, - "SchemaChangePolicy": { - "additionalProperties": false, - "properties": { - "DeleteBehavior": { - "enum": [ - "LOG", - "DELETE_FROM_DATABASE", - "DEPRECATE_IN_DATABASE" - ], - "type": "string" - }, - "UpdateBehavior": { - "enum": [ - "LOG", - "UPDATE_IN_DATABASE" - ], - "type": "string" - } - }, - "type": "object" - }, - "Targets": { - "additionalProperties": false, - "properties": { - "CatalogTargets": { - "items": { - "$ref": "#/definitions/CatalogTarget" - }, - "type": "array", - "uniqueItems": false - }, - "DynamoDBTargets": { - "items": { - "$ref": "#/definitions/DynamoDBTarget" - }, - "type": "array", - "uniqueItems": false - }, - "JdbcTargets": { - "items": { - "$ref": "#/definitions/JdbcTarget" - }, - "type": "array", - "uniqueItems": false - }, - "MongoDBTargets": { - "items": { - "$ref": "#/definitions/MongoDBTarget" - }, - "type": "array", - "uniqueItems": false - }, - "S3Targets": { - "items": { - "$ref": "#/definitions/S3Target" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::Glue::Crawler", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Classifiers": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Configuration": { - "type": "string" - }, - "CrawlerSecurityConfiguration": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "RecrawlPolicy": { - "$ref": "#/definitions/RecrawlPolicy" - }, - "Role": { - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule" - }, - "SchemaChangePolicy": { - "$ref": "#/definitions/SchemaChangePolicy" - }, - "TablePrefix": { - "type": "string" - }, - "Tags": { - "type": "object" - }, - "Targets": { - "$ref": "#/definitions/Targets" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Role", - "Targets" - ], - "typeName": "AWS::Glue::Crawler" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-database.json deleted file mode 100644 index fb8bf5db19..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-database.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::Glue::Database", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-job.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-job.json deleted file mode 100644 index c4b6de1a48..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-job.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "ConnectionsList": { - "additionalProperties": false, - "properties": { - "Connections": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "ExecutionProperty": { - "additionalProperties": false, - "properties": { - "MaxConcurrentRuns": { - "type": "number" - } - }, - "type": "object" - }, - "JobCommand": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "PythonVersion": { - "type": "string" - }, - "ScriptLocation": { - "type": "string" - } - }, - "type": "object" - }, - "NotificationProperty": { - "additionalProperties": false, - "properties": { - "NotifyDelayAfter": { - "type": "integer" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::Glue::Job", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AllocatedCapacity": { - "type": "number" - }, - "Command": { - "$ref": "#/definitions/JobCommand" - }, - "Connections": { - "$ref": "#/definitions/ConnectionsList" - }, - "DefaultArguments": { - "type": "object" - }, - "Description": { - "type": "string" - }, - "ExecutionClass": { - "type": "string" - }, - "ExecutionProperty": { - "$ref": "#/definitions/ExecutionProperty" - }, - "GlueVersion": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "MaxCapacity": { - "type": "number" - }, - "MaxRetries": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "NonOverridableArguments": { - "type": "object" - }, - "NotificationProperty": { - "$ref": "#/definitions/NotificationProperty" - }, - "NumberOfWorkers": { - "maximum": 299, - "minimum": 0, - "type": "integer" - }, - "Role": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "Tags": { - "type": "object" - }, - "Timeout": { - "type": "integer" - }, - "WorkerType": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Role", - "Command" - ], - "typeName": "AWS::Glue::Job" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-table.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-table.json deleted file mode 100644 index 12305076ed..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-table.json +++ /dev/null @@ -1,285 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DatabaseName", - "/properties/CatalogId" - ], - "definitions": { - "Column": { - "additionalProperties": false, - "properties": { - "Comment": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "IcebergInput": { - "additionalProperties": false, - "properties": { - "MetadataOperation": { - "$ref": "#/definitions/MetadataOperation" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "MetadataOperation": { - "additionalProperties": false, - "type": "object" - }, - "OpenTableFormatInput": { - "additionalProperties": false, - "properties": { - "IcebergInput": { - "$ref": "#/definitions/IcebergInput" - } - }, - "type": "object" - }, - "Order": { - "additionalProperties": false, - "properties": { - "Column": { - "type": "string" - }, - "SortOrder": { - "type": "integer" - } - }, - "required": [ - "Column", - "SortOrder" - ], - "type": "object" - }, - "SchemaId": { - "additionalProperties": false, - "properties": { - "RegistryName": { - "type": "string" - }, - "SchemaArn": { - "type": "string" - }, - "SchemaName": { - "type": "string" - } - }, - "type": "object" - }, - "SchemaReference": { - "additionalProperties": false, - "properties": { - "SchemaId": { - "$ref": "#/definitions/SchemaId" - }, - "SchemaVersionId": { - "type": "string" - }, - "SchemaVersionNumber": { - "type": "integer" - } - }, - "type": "object" - }, - "SerdeInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerializationLibrary": { - "type": "string" - } - }, - "type": "object" - }, - "SkewedInfo": { - "additionalProperties": false, - "properties": { - "SkewedColumnNames": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "SkewedColumnValueLocationMaps": { - "type": "object" - }, - "SkewedColumnValues": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "StorageDescriptor": { - "additionalProperties": false, - "properties": { - "BucketColumns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Columns": { - "items": { - "$ref": "#/definitions/Column" - }, - "type": "array", - "uniqueItems": false - }, - "Compressed": { - "type": "boolean" - }, - "InputFormat": { - "type": "string" - }, - "Location": { - "type": "string" - }, - "NumberOfBuckets": { - "type": "integer" - }, - "OutputFormat": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SchemaReference": { - "$ref": "#/definitions/SchemaReference" - }, - "SerdeInfo": { - "$ref": "#/definitions/SerdeInfo" - }, - "SkewedInfo": { - "$ref": "#/definitions/SkewedInfo" - }, - "SortColumns": { - "items": { - "$ref": "#/definitions/Order" - }, - "type": "array", - "uniqueItems": false - }, - "StoredAsSubDirectories": { - "type": "boolean" - } - }, - "type": "object" - }, - "TableIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TableInput": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Owner": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "PartitionKeys": { - "items": { - "$ref": "#/definitions/Column" - }, - "type": "array", - "uniqueItems": false - }, - "Retention": { - "type": "integer" - }, - "StorageDescriptor": { - "$ref": "#/definitions/StorageDescriptor" - }, - "TableType": { - "enum": [ - "EXTERNAL_TABLE", - "VIRTUAL_VIEW" - ], - "type": "string" - }, - "TargetTable": { - "$ref": "#/definitions/TableIdentifier" - }, - "ViewExpandedText": { - "type": "string" - }, - "ViewOriginalText": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::Glue::Table", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "OpenTableFormatInput": { - "$ref": "#/definitions/OpenTableFormatInput" - }, - "TableInput": { - "$ref": "#/definitions/TableInput" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "TableInput", - "DatabaseName", - "CatalogId" - ], - "typeName": "AWS::Glue::Table" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-imagebuilder-image.json new file mode 100644 index 0000000000..5582329923 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-imagebuilder-image.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ImageRecipeArn", + "/properties/ContainerRecipeArn", + "/properties/InfrastructureConfigurationArn", + "/properties/DistributionConfigurationArn", + "/properties/ImageTestsConfiguration", + "/properties/ImageScanningConfiguration", + "/properties/EnhancedImageMetadataEnabled", + "/properties/Tags" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Contains settings for Image Builder image resource and container image scans.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "The image tests configuration used when creating this image.", + "properties": { + "ImageTestsEnabled": { + "description": "ImageTestsEnabled", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "TimeoutMinutes", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::ImageBuilder::Image", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:GetImage", + "imagebuilder:CreateImage", + "imagebuilder:TagResource", + "inspector2:BatchGetAccountStatus" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "imagebuilder:GetImage", + "imagebuilder:DeleteImage", + "imagebuilder:UnTagResource", + "imagebuilder:CancelImageCreation" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListImages" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImage" + ] + } + }, + "oneOf": [ + { + "required": [ + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ImageId": { + "description": "The AMI ID of the EC2 AMI in current region.", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration used when creating this image." + }, + "ImageUri": { + "description": "URI for containers created in current Region with default ECR image tag", + "type": "string" + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", + "type": "string" + }, + "Name": { + "description": "The name of the image.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the image.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Name", + "/properties/ImageId", + "/properties/ImageUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Image" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-imagebuilder-imagepipeline.json new file mode 100644 index 0000000000..5b70e0ff38 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-imagebuilder-imagepipeline.json @@ -0,0 +1,213 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "Image tests configuration.", + "properties": { + "ImageTestsEnabled": { + "description": "Defines if tests should be executed when building this image.", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "The maximum time in minutes that tests are permitted to run.", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "description": "The schedule of the image pipeline.", + "properties": { + "PipelineExecutionStartCondition": { + "description": "The condition configures when the pipeline should trigger a new image build.", + "enum": [ + "EXPRESSION_MATCH_ONLY", + "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + ], + "type": "string" + }, + "ScheduleExpression": { + "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:CreateImagePipeline", + "imagebuilder:GetWorkflow", + "inspector2:BatchGetAccountStatus" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:UnTagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:DeleteImagePipeline" + ] + }, + "list": { + "permissions": [ + "imagebuilder:ListImagePipelines" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImagePipeline" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "imagebuilder:GetImagePipeline", + "imagebuilder:UpdateImagePipeline", + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Name", + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "Name", + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image pipeline.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "Description": { + "description": "The description of the image pipeline.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration of the image pipeline." + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", + "type": "string" + }, + "Name": { + "description": "The name of the image pipeline.", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule", + "description": "The schedule of the image pipeline." + }, + "Status": { + "description": "The status of the image pipeline.", + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags of this image pipeline.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::ImagePipeline" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-lambda-eventinvokeconfig.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-lambda-eventinvokeconfig.json new file mode 100644 index 0000000000..7062267808 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-lambda-eventinvokeconfig.json @@ -0,0 +1,77 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FunctionName", + "/properties/Qualifier" + ], + "definitions": { + "DestinationConfig": { + "additionalProperties": false, + "properties": { + "OnFailure": { + "$ref": "#/definitions/OnFailure" + }, + "OnSuccess": { + "$ref": "#/definitions/OnSuccess" + } + }, + "type": "object" + }, + "OnFailure": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + } + }, + "required": [ + "Destination" + ], + "type": "object" + }, + "OnSuccess": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + } + }, + "required": [ + "Destination" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Lambda::EventInvokeConfig", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DestinationConfig": { + "$ref": "#/definitions/DestinationConfig" + }, + "FunctionName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "MaximumEventAgeInSeconds": { + "type": "integer" + }, + "MaximumRetryAttempts": { + "type": "integer" + }, + "Qualifier": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "Qualifier" + ], + "typeName": "AWS::Lambda::EventInvokeConfig" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-lambda-function.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-lambda-function.json similarity index 99% rename from src/cfnlint/data/schemas/providers/eu_south_1/aws-lambda-function.json rename to src/cfnlint/data/schemas/providers/us_gov_east_1/aws-lambda-function.json index eef62c32fd..486712593c 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-lambda-function.json +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-lambda-function.json @@ -502,6 +502,10 @@ ], "type": "string" }, + "Policy": { + "description": "The resource policy of your function", + "type": "object" + }, "ReservedConcurrentExecutions": { "description": "The number of simultaneous executions to reserve for the function.", "minimum": 0, @@ -614,6 +618,7 @@ "/properties/Code/S3Bucket", "/properties/Code/S3Key", "/properties/Code/S3ObjectVersion", - "/properties/Code/ZipFile" + "/properties/Code/ZipFile", + "/properties/Policy" ] } diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-opensearchservice-domain.json new file mode 100644 index 0000000000..43112af1b9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-opensearchservice-domain.json @@ -0,0 +1,517 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/EncryptionAtRestOptions/Enabled", + "/properties/EncryptionAtRestOptions/KmsKeyId", + "/properties/AdvancedSecurityOptions/Enabled" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/SAMLOptions" + } + }, + "type": "object" + }, + "ClusterConfig": { + "additionalProperties": false, + "properties": { + "DedicatedMasterCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "MultiAZWithStandbyEnabled": { + "type": "boolean" + }, + "WarmCount": { + "type": "integer" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "maxLength": 1048576, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MetadataContent", + "EntityId" + ], + "type": "object" + }, + "LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "OffPeakWindow": { + "additionalProperties": false, + "properties": { + "WindowStartTime": { + "$ref": "#/definitions/WindowStartTime" + } + }, + "type": "object" + }, + "OffPeakWindowOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OffPeakWindow": { + "$ref": "#/definitions/OffPeakWindow" + } + }, + "type": "object" + }, + "SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "integer" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + }, + "type": "object" + }, + "SoftwareUpdateOptions": { + "additionalProperties": false, + "properties": { + "AutoSoftwareUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "description": "The value of the tag.", + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Value": { + "description": "The key of the tag.", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "WindowStartTime": { + "additionalProperties": false, + "properties": { + "Hours": { + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "Minutes": { + "maximum": 59, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "An example resource schema demonstrating some basic constructs and validation rules.", + "handlers": { + "create": { + "permissions": [ + "es:CreateDomain", + "es:DescribeDomain", + "es:AddTags", + "es:ListTags" + ] + }, + "delete": { + "permissions": [ + "es:DeleteDomain", + "es:DescribeDomain" + ] + }, + "read": { + "permissions": [ + "es:DescribeDomain", + "es:ListTags" + ] + }, + "update": { + "permissions": [ + "es:UpdateDomain", + "es:UpgradeDomain", + "es:DescribeDomain", + "es:AddTags", + "es:RemoveTags", + "es:ListTags", + "es:DescribeDomainChangeProgress" + ], + "timeoutInMinutes": 780 + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "AccessPolicies": { + "type": "object" + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AdvancedSecurityOptionsInput" + }, + "Arn": { + "type": "string" + }, + "ClusterConfig": { + "$ref": "#/definitions/ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/CognitoOptions" + }, + "DomainArn": { + "type": "string" + }, + "DomainEndpoint": { + "type": "string" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/DomainEndpointOptions" + }, + "DomainEndpoints": { + "additionalProperties": false, + "patternProperties": { + "^.*$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/NodeToNodeEncryptionOptions" + }, + "OffPeakWindowOptions": { + "$ref": "#/definitions/OffPeakWindowOptions" + }, + "ServiceSoftwareOptions": { + "$ref": "#/definitions/ServiceSoftwareOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/SnapshotOptions" + }, + "SoftwareUpdateOptions": { + "$ref": "#/definitions/SoftwareUpdateOptions" + }, + "Tags": { + "description": "An arbitrary set of tags (key-value pairs) for this Domain.", + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VPCOptions": { + "$ref": "#/definitions/VPCOptions" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/DomainArn", + "/properties/DomainEndpoint", + "/properties/DomainEndpoints", + "/properties/ServiceSoftwareOptions", + "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::OpenSearchService::Domain", + "writeOnlyProperties": [ + "/properties/AdvancedSecurityOptions/MasterUserOptions", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-rds-dbcluster.json new file mode 100644 index 0000000000..9a18b7d8e4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-rds-dbcluster.json @@ -0,0 +1,545 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbcluster/serverless_exclusive" + ], + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "description": "Describes an AWS Identity and Access Management (IAM) role that is associated with a DB cluster.", + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. For the list of supported feature names, see DBEngineVersion in the Amazon RDS API Reference.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB cluster.", + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The connection endpoint for the DB cluster.", + "type": "string" + }, + "Port": { + "description": "The port number that will accept connections on this DB cluster.", + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS key identifier that is used to encrypt the secret.", + "type": "string" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the secret.", + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The reader endpoint for the DB cluster.", + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "description": "The ScalingConfiguration property type specifies the scaling configuration of an Aurora Serverless DB cluster.", + "properties": { + "AutoPause": { + "description": "A value that indicates whether to allow or disallow automatic pause for an Aurora DB cluster in serverless DB engine mode. A DB cluster can be paused only when it's idle (it has no connections).", + "type": "boolean" + }, + "MaxCapacity": { + "description": "The maximum capacity for an Aurora DB cluster in serverless DB engine mode.\nFor Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.\nFor Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.\nThe maximum capacity must be greater than or equal to the minimum capacity.", + "type": "integer" + }, + "MinCapacity": { + "description": "The minimum capacity for an Aurora DB cluster in serverless DB engine mode.\nFor Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.\nFor Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.\nThe minimum capacity must be less than or equal to the maximum capacity.", + "type": "integer" + }, + "SecondsBeforeTimeout": { + "description": "The amount of time, in seconds, that Aurora Serverless v1 tries to find a scaling point to perform seamless scaling before enforcing the timeout action.\nThe default is 300.", + "type": "integer" + }, + "SecondsUntilAutoPause": { + "description": "The time, in seconds, before an Aurora DB cluster in serverless mode is paused.", + "type": "integer" + }, + "TimeoutAction": { + "description": "The action to take when the timeout is reached, either ForceApplyCapacityChange or RollbackCapacityChange.\nForceApplyCapacityChange sets the capacity to the specified value as soon as possible.\nRollbackCapacityChange, the default, ignores the capacity change if a scaling point isn't found in the timeout period.\n\nFor more information, see Autoscaling for Aurora Serverless v1 in the Amazon Aurora User Guide.", + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "description": "Contains the scaling configuration of an Aurora Serverless v2 DB cluster.", + "properties": { + "MaxCapacity": { + "description": "The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 40, 40.5, 41, and so on. The largest value that you can use is 128.", + "maximum": 128, + "minimum": 0.5, + "type": "number" + }, + "MinCapacity": { + "description": "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5.", + "maximum": 128, + "minimum": 0.5, + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SnapshotIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false + } + }, + "SourceDBClusterIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "description": "The AWS::RDS::DBCluster resource creates an Amazon Aurora DB cluster.", + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeEvents", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "description": "The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.", + "type": "integer" + }, + "AssociatedRoles": { + "description": "Provides a list of the AWS Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other AWS services on your behalf.", + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "description": "A value that indicates whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.", + "type": "boolean" + }, + "AvailabilityZones": { + "awsType": "AvailabilityZones", + "description": "A list of Availability Zones (AZs) where instances in the DB cluster can be created. For information on AWS Regions and Availability Zones, see Choosing the Regions and Availability Zones in the Amazon Aurora User Guide.", + "items": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "default": 0, + "description": "The target backtrack window, in seconds. To disable backtracking, set this value to 0.", + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "description": "The number of days for which automated backups are retained.", + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them.", + "type": "boolean" + }, + "DBClusterArn": { + "description": "The Amazon Resource Name (ARN) for the DB cluster.", + "type": "string" + }, + "DBClusterIdentifier": { + "description": "The DB cluster identifier. This parameter is stored as a lowercase string.", + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "description": "The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6g.xlarge.", + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "description": "The name of the DB cluster parameter group to associate with this DB cluster.", + "type": "string" + }, + "DBClusterResourceId": { + "description": "The AWS Region-unique, immutable identifier for the DB cluster.", + "type": "string" + }, + "DBInstanceParameterGroupName": { + "description": "The name of the DB parameter group to apply to all instances of the DB cluster.", + "type": "string" + }, + "DBSubnetGroupName": { + "description": "A DB subnet group that you want to associate with this DB cluster.", + "type": "string" + }, + "DBSystemId": { + "description": "Reserved for future use.", + "type": "string" + }, + "DatabaseName": { + "description": "The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see Naming Constraints in the Amazon RDS User Guide.", + "type": "string" + }, + "DeletionProtection": { + "description": "A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.", + "type": "boolean" + }, + "Domain": { + "description": "The Active Directory directory ID to create the DB cluster in.", + "type": "string" + }, + "DomainIAMRoleName": { + "description": "Specify the name of the IAM role to be used when making API calls to the Directory Service.", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "description": "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "description": "Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database.", + "type": "boolean" + }, + "EnableHttpEndpoint": { + "description": "A value that indicates whether to enable the HTTP endpoint for an Aurora Serverless DB cluster. By default, the HTTP endpoint is disabled.", + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "description": "The name of the database engine to be used for this DB cluster. Valid Values: aurora (for MySQL 5.6-compatible Aurora), aurora-mysql (for MySQL 5.7-compatible Aurora), and aurora-postgresql", + "type": "string" + }, + "EngineMode": { + "description": "The DB engine mode of the DB cluster, either provisioned, serverless, parallelquery, global, or multimaster.", + "type": "string" + }, + "EngineVersion": { + "description": "The version number of the database engine to use.", + "type": "string" + }, + "GlobalClusterIdentifier": { + "description": "If you are configuring an Aurora global database cluster and want your Aurora DB cluster to be a secondary member in the global database cluster, specify the global cluster ID of the global database cluster. To define the primary database cluster of the global cluster, use the AWS::RDS::GlobalCluster resource.\n\nIf you aren't configuring a global database cluster, don't specify this property.", + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "description": "The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.", + "type": "integer" + }, + "KmsKeyId": { + "description": "The Amazon Resource Name (ARN) of the AWS Key Management Service master key that is used to encrypt the database instances in the DB cluster, such as arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. If you enable the StorageEncrypted property but don't specify this property, the default master key is used. If you specify this property, you must set the StorageEncrypted property to true.", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "A value that indicates whether to manage the master user password with AWS Secrets Manager.", + "type": "boolean" + }, + "MasterUserPassword": { + "description": "The master password for the DB instance.", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret", + "description": "Contains the secret managed by RDS in AWS Secrets Manager for the master user password." + }, + "MasterUsername": { + "description": "The name of the master user for the DB cluster. You must specify MasterUsername, unless you specify SnapshotIdentifier. In that case, don't specify MasterUsername.", + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify 0. The default is 0.", + "type": "integer" + }, + "MonitoringRoleArn": { + "description": "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.", + "type": "string" + }, + "NetworkType": { + "description": "The network type of the DB cluster.", + "type": "string" + }, + "PerformanceInsightsEnabled": { + "description": "A value that indicates whether to turn on Performance Insights for the DB cluster.", + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "description": "The Amazon Web Services KMS key identifier for encryption of Performance Insights data.", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "description": "The amount of time, in days, to retain Performance Insights data.", + "type": "integer" + }, + "Port": { + "description": "The port number on which the instances in the DB cluster accept connections. Default: 3306 if engine is set as aurora or 5432 if set to aurora-postgresql.", + "type": "integer" + }, + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter. The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "description": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.", + "type": "string" + }, + "PubliclyAccessible": { + "description": "A value that indicates whether the DB cluster is publicly accessible.", + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "description": "The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a Read Replica.", + "type": "string" + }, + "RestoreToTime": { + "description": "The date and time to restore the DB cluster to. Value must be a time in Universal Coordinated Time (UTC) format. An example: 2015-03-07T23:45:00Z", + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "description": "The type of restore to be performed. You can specify one of the following values:\nfull-copy - The new DB cluster is restored as a full copy of the source DB cluster.\ncopy-on-write - The new DB cluster is restored as a clone of the source DB cluster.", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration", + "description": "The ScalingConfiguration property type specifies the scaling configuration of an Aurora Serverless DB cluster." + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration", + "description": "Contains the scaling configuration of an Aurora Serverless v2 DB cluster." + }, + "SnapshotIdentifier": { + "description": "The identifier for the DB snapshot or DB cluster snapshot to restore from.\nYou can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot. However, you can use only the ARN to specify a DB snapshot.\nAfter you restore a DB cluster with a SnapshotIdentifier property, you must specify the same SnapshotIdentifier property for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed. However, if you don't specify the SnapshotIdentifier property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, the DB cluster is restored from the specified SnapshotIdentifier property, and the original DB cluster is deleted.", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "description": "The identifier of the source DB cluster from which to restore.", + "type": "string" + }, + "SourceRegion": { + "description": "The AWS Region which contains the source DB cluster when replicating a DB cluster. For example, us-east-1.", + "type": "string" + }, + "StorageEncrypted": { + "description": "Indicates whether the DB instance is encrypted.\nIf you specify the DBClusterIdentifier, SnapshotIdentifier, or SourceDBInstanceIdentifier property, don't specify this property. The value is inherited from the cluster, snapshot, or source DB instance.", + "type": "boolean" + }, + "StorageType": { + "description": "Specifies the storage type to be associated with the DB cluster.", + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "description": "A value that indicates whether to restore the DB cluster to the latest restorable backup time. By default, the DB cluster is not restored to the latest restorable backup time.", + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "description": "A list of EC2 VPC security groups to associate with this DB cluster.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : false", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "typeName": "AWS::RDS::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/MasterUserPassword", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-rds-dbinstance.json new file mode 100644 index 0000000000..4c2f423ae2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-rds-dbinstance.json @@ -0,0 +1,697 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbinstance/aurora_exclusive" + ], + "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": { + "description": "The CA identifier of the CA certificate used for the DB instance's server certificate.", + "type": "string" + }, + "ValidTill": { + "description": "The expiration date of the DB instance\u2019s server certificate.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "DBInstanceRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. IAM roles that are associated with a DB instance grant permission for the DB instance to access other AWS services on your behalf.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB instance.", + "type": "string" + } + }, + "required": [ + "FeatureName", + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "Specifies the DNS address of the DB instance.", + "type": "string" + }, + "HostedZoneId": { + "description": "Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.", + "type": "string" + }, + "Port": { + "description": "Specifies the port that the database engine is listening on.", + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS key identifier that is used to encrypt the secret.", + "type": "string" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the secret.", + "type": "string" + } + }, + "type": "object" + }, + "ProcessorFeature": { + "additionalProperties": false, + "properties": { + "Name": { + "description": "The name of the processor feature. Valid names are coreCount and threadsPerCore.", + "enum": [ + "coreCount", + "threadsPerCore" + ], + "type": "string" + }, + "Value": { + "description": "The value of a processor feature name.", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SourceDBInstanceIdentifier": { + "properties": { + "CharacterSetName": false, + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "deprecatedProperties": [ + "/properties/TdeCredentialArn", + "/properties/TdeCredentialPassword" + ], + "description": "The AWS::RDS::DBInstance resource creates an Amazon RDS DB instance.", + "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: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": { + "description": "The amount of storage (in gigabytes) to be initially allocated for the database instance.", + "pattern": "^[0-9]*$", + "type": "string" + }, + "AllowMajorVersionUpgrade": { + "description": "A value that indicates whether major version upgrades are allowed. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible.", + "type": "boolean" + }, + "AssociatedRoles": { + "description": "The AWS Identity and Access Management (IAM) roles associated with the DB instance.", + "items": { + "$ref": "#/definitions/DBInstanceRole" + }, + "type": "array" + }, + "AutoMinorVersionUpgrade": { + "description": "A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are applied automatically.", + "type": "boolean" + }, + "AutomaticBackupReplicationRegion": { + "description": "Enables replication of automated backups to a different Amazon Web Services Region.", + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "description": "The Availability Zone (AZ) where the database will be created. For information on AWS Regions and Availability Zones.", + "type": "string" + }, + "BackupRetentionPeriod": { + "default": 1, + "description": "The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.", + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CACertificateIdentifier": { + "description": "The identifier of the CA certificate for this DB instance.", + "type": "string" + }, + "CertificateDetails": { + "$ref": "#/definitions/CertificateDetails", + "description": "Returns the details of the DB instance's server certificate." + }, + "CertificateRotationRestart": { + "description": "A value that indicates whether the DB instance is restarted when you rotate your SSL/TLS certificate.\nBy default, the DB instance is restarted when you rotate your SSL/TLS certificate. The certificate is not updated until the DB instance is restarted.\nIf you are using SSL/TLS to connect to the DB instance, follow the appropriate instructions for your DB engine to rotate your SSL/TLS certificate\nThis setting doesn't apply to RDS Custom.", + "type": "boolean" + }, + "CharacterSetName": { + "description": "For supported engines, indicates that the DB instance should be associated with the specified character set.", + "type": "string" + }, + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied.", + "type": "boolean" + }, + "CustomIAMInstanceProfile": { + "description": "The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The instance profile must meet the following requirements:\n * The profile must exist in your account.\n * The profile must have an IAM role that Amazon EC2 has permissions to assume.\n * The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom .\nFor the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide .\n\nThis setting is required for RDS Custom.", + "type": "string" + }, + "DBClusterIdentifier": { + "description": "The identifier of the DB cluster that the instance will belong to.", + "type": "string" + }, + "DBClusterSnapshotIdentifier": { + "description": "The identifier for the RDS for MySQL Multi-AZ DB cluster snapshot to restore from. For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide .\n\nConstraints:\n * Must match the identifier of an existing Multi-AZ DB cluster snapshot.\n * Can't be specified when DBSnapshotIdentifier is specified.\n * Must be specified when DBSnapshotIdentifier isn't specified.\n * If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the DBClusterSnapshotIdentifier must be the ARN of the shared snapshot.\n * Can't be the identifier of an Aurora DB cluster snapshot.\n * Can't be the identifier of an RDS for PostgreSQL Multi-AZ DB cluster snapshot.", + "type": "string" + }, + "DBInstanceArn": { + "description": "The Amazon Resource Name (ARN) for the DB instance.", + "type": "string" + }, + "DBInstanceClass": { + "cfnRegionSchema": "aws_rds_dbinstance/dbinstanceclass_enum", + "description": "The compute and memory capacity of the DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines.", + "type": "string" + }, + "DBInstanceIdentifier": { + "description": "A name for the DB instance. If you specify a name, AWS CloudFormation converts it to lowercase. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the DB instance.", + "maxLength": 63, + "minLength": 1, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBName": { + "description": "The meaning of this parameter differs according to the database engine you use.", + "type": "string" + }, + "DBParameterGroupName": { + "description": "The name of an existing DB parameter group or a reference to an AWS::RDS::DBParameterGroup resource created in the template.", + "type": "string" + }, + "DBSecurityGroups": { + "description": "A list of the DB security groups to assign to the DB instance. The list can include both the name of existing DB security groups or references to AWS::RDS::DBSecurityGroup resources created in the template.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "DBSnapshotIdentifier": { + "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.", + "type": "string" + }, + "DBSubnetGroupName": { + "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC.", + "type": "string" + }, + "DBSystemId": { + "description": "The Oracle system ID (Oracle SID) for a container database (CDB). The Oracle SID is also the name of the CDB. This setting is valid for RDS Custom only.", + "type": "string" + }, + "DbiResourceId": { + "description": "The AWS Region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB instance is accessed.", + "type": "string" + }, + "DedicatedLogVolume": { + "description": "Indicates whether the DB instance has a dedicated log volume (DLV) enabled.", + "type": "boolean" + }, + "DeleteAutomatedBackups": { + "description": "A value that indicates whether to remove automated backups immediately after the DB instance is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB instance is deleted.", + "type": "boolean" + }, + "DeletionProtection": { + "description": "A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.", + "type": "boolean" + }, + "Domain": { + "description": "The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain.", + "type": "string" + }, + "DomainAuthSecretArn": { + "description": "The ARN for the Secrets Manager secret with the credentials for the user joining the domain.", + "type": "string" + }, + "DomainDnsIps": { + "description": "The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers.", + "items": { + "type": "string" + }, + "type": "array" + }, + "DomainFqdn": { + "description": "The fully qualified domain name (FQDN) of an Active Directory domain.", + "type": "string" + }, + "DomainIAMRoleName": { + "description": "Specify the name of the IAM role to be used when making API calls to the Directory Service.", + "type": "string" + }, + "DomainOu": { + "description": "The Active Directory organizational unit for your DB instance to join.", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "description": "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used.", + "items": { + "type": "string" + }, + "type": "array" + }, + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.", + "type": "boolean" + }, + "EnablePerformanceInsights": { + "description": "A value that indicates whether to enable Performance Insights for the DB instance.", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint", + "description": "Specifies the connection endpoint." + }, + "Engine": { + "description": "The name of the database engine that you want to use for this DB instance.", + "type": "string" + }, + "EngineVersion": { + "description": "The version number of the database engine to use.", + "type": "string" + }, + "Iops": { + "description": "The number of I/O operations per second (IOPS) that the database provisions.", + "type": "integer" + }, + "KmsKeyId": { + "description": "The ARN of the AWS Key Management Service (AWS KMS) master key that's used to encrypt the DB instance.", + "type": "string" + }, + "LicenseModel": { + "description": "License model information for this DB instance.", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "A value that indicates whether to manage the master user password with AWS Secrets Manager.", + "type": "boolean" + }, + "MasterUserPassword": { + "description": "The password for the master user.", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret", + "description": "Contains the secret managed by RDS in AWS Secrets Manager for the master user password." + }, + "MasterUsername": { + "description": "The master user name for the DB instance.", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", + "type": "string" + }, + "MaxAllocatedStorage": { + "description": "The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.", + "type": "integer" + }, + "MonitoringInterval": { + "default": 0, + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0.", + "type": "integer" + }, + "MonitoringRoleArn": { + "description": "The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs.", + "type": "string" + }, + "MultiAZ": { + "description": "Specifies whether the database instance is a multiple Availability Zone deployment.", + "type": "boolean" + }, + "NcharCharacterSetName": { + "description": "The name of the NCHAR character set for the Oracle DB instance. This parameter doesn't apply to RDS Custom.", + "type": "string" + }, + "NetworkType": { + "description": "The network type of the DB cluster.", + "type": "string" + }, + "OptionGroupName": { + "description": "Indicates that the DB instance should be associated with the specified option group.", + "type": "string" + }, + "PerformanceInsightsKMSKeyId": { + "description": "The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "description": "The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).", + "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": { + "description": "The port number on which the database accepts connections.", + "pattern": "^\\d*$", + "type": "string" + }, + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter.", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "description": "he weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).", + "type": "string" + }, + "ProcessorFeatures": { + "description": "The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.", + "items": { + "$ref": "#/definitions/ProcessorFeature" + }, + "type": "array" + }, + "PromotionTier": { + "default": 1, + "description": "A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance.", + "maximum": 15, + "minimum": 0, + "type": "integer" + }, + "PubliclyAccessible": { + "description": "Indicates whether the DB instance is an internet-facing instance. If you specify true, AWS CloudFormation creates an instance with a publicly resolvable DNS name, which resolves to a public IP address. If you specify false, AWS CloudFormation creates an internal instance with a DNS name that resolves to a private IP address.", + "type": "boolean" + }, + "ReplicaMode": { + "description": "The open mode of an Oracle read replica. The default is open-read-only.", + "type": "string" + }, + "RestoreTime": { + "description": "The date and time to restore from.", + "format": "date-time", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "description": "The identifier of the Multi-AZ DB cluster that will act as the source for the read replica. Each DB cluster can have up to 15 read replicas.", + "type": "string" + }, + "SourceDBInstanceAutomatedBackupsArn": { + "description": "The Amazon Resource Name (ARN) of the replicated automated backups from which to restore.", + "type": "string" + }, + "SourceDBInstanceIdentifier": { + "description": "If you want to create a Read Replica DB instance, specify the ID of the source DB instance. Each DB instance can have a limited number of Read Replicas.", + "type": "string" + }, + "SourceDbiResourceId": { + "description": "The resource ID of the source DB instance from which to restore.", + "type": "string" + }, + "SourceRegion": { + "description": "The ID of the region that contains the source DB instance for the Read Replica.", + "type": "string" + }, + "StorageEncrypted": { + "description": "A value that indicates whether the DB instance is encrypted. By default, it isn't encrypted.", + "type": "boolean" + }, + "StorageThroughput": { + "description": "Specifies the storage throughput for the DB instance.", + "type": "integer" + }, + "StorageType": { + "description": "Specifies the storage type to be associated with the DB instance.", + "type": "string" + }, + "Tags": { + "description": "Tags to assign to the DB instance.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TdeCredentialArn": { + "description": "The ARN from the key store with which to associate the instance for TDE encryption.", + "type": "string" + }, + "TdeCredentialPassword": { + "description": "The password for the given ARN from the key store in order to access the device.", + "type": "string" + }, + "Timezone": { + "description": "The time zone of the DB instance. The time zone parameter is currently supported only by Microsoft SQL Server.", + "type": "string" + }, + "UseDefaultProcessorFeatures": { + "description": "A value that indicates whether the DB instance class of the DB instance uses its default processor features.", + "type": "boolean" + }, + "UseLatestRestorableTime": { + "description": "A value that indicates whether the DB instance is restored from the latest backup time. By default, the DB instance isn't restored from the latest backup time.", + "type": "boolean" + }, + "VPCSecurityGroups": { + "description": "A list of the VPC security group IDs to assign to the DB instance. The list can include both the physical IDs of existing VPC security groups and references to AWS::EC2::SecurityGroup resources created in the template.", + "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/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/us_gov_east_1/aws-route53resolver-resolverconfig.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-route53resolver-resolverconfig.json deleted file mode 100644 index 9234251574..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-route53resolver-resolverconfig.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ResourceId", - "/properties/AutodefinedReverseFlag" - ], - "description": "Resource schema for AWS::Route53Resolver::ResolverConfig.", - "handlers": { - "create": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "delete": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "list": { - "permissions": [ - "route53resolver:ListResolverConfigs" - ] - }, - "read": { - "permissions": [ - "route53resolver:GetResolverConfig" - ] - } - }, - "primaryIdentifier": [ - "/properties/ResourceId" - ], - "properties": { - "AutodefinedReverse": { - "description": "ResolverAutodefinedReverseStatus, possible values are ENABLING, ENABLED, DISABLING AND DISABLED.", - "enum": [ - "ENABLING", - "ENABLED", - "DISABLING", - "DISABLED" - ], - "type": "string" - }, - "AutodefinedReverseFlag": { - "description": "Represents the desired status of AutodefinedReverse. The only supported value on creation is DISABLE. Deletion of this resource will return AutodefinedReverse to its default value (ENABLED).", - "enum": [ - "DISABLE" - ], - "type": "string" - }, - "Id": { - "description": "Id", - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "OwnerId": { - "description": "AccountId", - "maxLength": 32, - "minLength": 12, - "type": "string" - }, - "ResourceId": { - "description": "ResourceId", - "maxLength": 64, - "minLength": 1, - "type": "string" - } - }, - "propertyTransform": { - "/properties/AutodefinedReverseFlag": "$join([AutodefinedReverseFlag, \"D\"])" - }, - "readOnlyProperties": [ - "/properties/OwnerId", - "/properties/Id", - "/properties/AutodefinedReverse" - ], - "required": [ - "ResourceId", - "AutodefinedReverseFlag" - ], - "taggable": false, - "typeName": "AWS::Route53Resolver::ResolverConfig" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-sagemaker-app.json new file mode 100644 index 0000000000..da6e3f4330 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-sagemaker-app.json @@ -0,0 +1,216 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/Tags", + "/properties/ResourceSpec" + ], + "definitions": { + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "description": "The instance type that the image version runs on.", + "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" + ], + "type": "string" + }, + "SageMakerImageArn": { + "description": "The ARN of the SageMaker image that the image version belongs to.", + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "description": "The ARN of the image version created on the instance.", + "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" + } + }, + "description": "Resource Type definition for AWS::SageMaker::App", + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:DescribeApp" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListApps" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeApp" + ] + } + }, + "primaryIdentifier": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName" + ], + "properties": { + "AppArn": { + "description": "The Amazon Resource Name (ARN) of the app.", + "maxLength": 256, + "minLength": 1, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app/.*", + "type": "string" + }, + "AppName": { + "description": "The name of the app.", + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "AppType": { + "description": "The type of app.", + "enum": [ + "JupyterServer", + "KernelGateway", + "RStudioServerPro", + "RSessionGateway", + "Canvas" + ], + "type": "string" + }, + "DomainId": { + "description": "The domain ID.", + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "ResourceSpec": { + "$ref": "#/definitions/ResourceSpec", + "description": "The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance." + }, + "Tags": { + "description": "A list of tags to apply to the app.", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileName": { + "description": "The user profile name.", + "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/us_gov_east_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-sagemaker-domain.json new file mode 100644 index 0000000000..1948e2768f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-sagemaker-domain.json @@ -0,0 +1,575 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AppNetworkAccessType", + "/properties/AuthMode", + "/properties/DomainName", + "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", + "/properties/KmsKeyId", + "/properties/SubnetIds", + "/properties/VpcId", + "/properties/Tags" + ], + "definitions": { + "CustomImage": { + "additionalProperties": false, + "description": "A custom SageMaker image.", + "properties": { + "AppImageConfigName": { + "description": "The Name of the AppImageConfig.", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "description": "The name of the CustomImage. Must be unique to your account.", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "description": "The version number of the CustomImage.", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "DefaultSpaceSettings": { + "additionalProperties": false, + "description": "A collection of settings that apply to spaces of Amazon SageMaker Studio. These settings are specified when the Create/Update Domain API is called.", + "properties": { + "ExecutionRole": { + "description": "The execution role for the space.", + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings", + "description": "The Jupyter server's app settings." + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings", + "description": "The kernel gateway app settings." + }, + "SecurityGroups": { + "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + }, + "DomainSettings": { + "additionalProperties": false, + "description": "A collection of Domain settings.", + "properties": { + "RStudioServerProDomainSettings": { + "$ref": "#/definitions/RStudioServerProDomainSettings" + }, + "SecurityGroupIds": { + "description": "The security groups for the Amazon Virtual Private Cloud that the Domain uses for communication between Domain-level apps and user apps.", + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "description": "The JupyterServer app settings.", + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "description": "The kernel gateway app settings.", + "properties": { + "CustomImages": { + "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec", + "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app." + } + }, + "type": "object" + }, + "RSessionAppSettings": { + "additionalProperties": false, + "description": "A collection of settings that apply to an RSessionGateway app.", + "properties": { + "CustomImages": { + "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "description": "A collection of settings that configure user interaction with the RStudioServerPro app.", + "properties": { + "AccessStatus": { + "description": "Indicates whether the current user has access to the RStudioServerPro app.", + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "description": "The level of permissions that the user has within the RStudioServerPro app. This value defaults to User. The Admin value allows the user access to the RStudio Administrative Dashboard.", + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "RStudioServerProDomainSettings": { + "additionalProperties": false, + "description": "A collection of settings that update the current configuration for the RStudioServerPro Domain-level app.", + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "DomainExecutionRoleArn": { + "description": "The ARN of the execution role for the RStudioServerPro Domain-level app.", + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "RStudioConnectUrl": { + "description": "A URL pointing to an RStudio Connect server.", + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + }, + "RStudioPackageManagerUrl": { + "description": "A URL pointing to an RStudio Package Manager server.", + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + } + }, + "required": [ + "DomainExecutionRoleArn" + ], + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "description": "The instance type that the image version runs on.", + "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" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "description": "The Amazon Resource Name (ARN) of the SageMaker image that the image version belongs to.", + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "description": "The Amazon Resource Name (ARN) of the image version created on the instance.", + "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, + "description": "Specifies options when sharing an Amazon SageMaker Studio notebook. These settings are specified as part of DefaultUserSettings when the CreateDomain API is called, and as part of UserSettings when the CreateUserProfile API is called.", + "properties": { + "NotebookOutputOption": { + "description": "Whether to include the notebook cell output when sharing the notebook. The default is Disabled.", + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "description": "When NotebookOutputOption is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.", + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "description": "When NotebookOutputOption is Allowed, the Amazon S3 bucket used to store the shared notebook snapshots.", + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "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" + }, + "UserSettings": { + "additionalProperties": false, + "description": "A collection of settings that apply to users of Amazon SageMaker Studio. These settings are specified when the CreateUserProfile API is called, and as DefaultUserSettings when the CreateDomain API is called.", + "properties": { + "ExecutionRole": { + "description": "The execution role for the user.", + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings", + "description": "The Jupyter server's app settings." + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings", + "description": "The kernel gateway app settings." + }, + "RSessionAppSettings": { + "$ref": "#/definitions/RSessionAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings", + "description": "The sharing settings." + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::SageMaker::Domain", + "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": { + "description": "Specifies the VPC used for non-EFS traffic. The default value is PublicInternetOnly.", + "enum": [ + "PublicInternetOnly", + "VpcOnly" + ], + "type": "string" + }, + "AppSecurityGroupManagement": { + "description": "The entity that creates and manages the required security groups for inter-app communication in VPCOnly mode. Required when CreateDomain.AppNetworkAccessType is VPCOnly and DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn is provided.", + "enum": [ + "Service", + "Customer" + ], + "type": "string" + }, + "AuthMode": { + "description": "The mode of authentication that members use to access the domain.", + "enum": [ + "SSO", + "IAM" + ], + "type": "string" + }, + "DefaultSpaceSettings": { + "$ref": "#/definitions/DefaultSpaceSettings", + "description": "The default space settings." + }, + "DefaultUserSettings": { + "$ref": "#/definitions/UserSettings", + "description": "The default user settings." + }, + "DomainArn": { + "description": "The Amazon Resource Name (ARN) of the created domain.", + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", + "type": "string" + }, + "DomainId": { + "description": "The domain name.", + "maxLength": 63, + "pattern": "^d-(-*[a-z0-9])+", + "type": "string" + }, + "DomainName": { + "description": "A name for the domain.", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "DomainSettings": { + "$ref": "#/definitions/DomainSettings" + }, + "HomeEfsFileSystemId": { + "description": "The ID of the Amazon Elastic File System (EFS) managed by this Domain.", + "maxLength": 32, + "type": "string" + }, + "KmsKeyId": { + "description": "SageMaker uses AWS KMS to encrypt the EFS volume attached to the domain with an AWS managed customer master key (CMK) by default.", + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "SecurityGroupIdForDomainBoundary": { + "description": "The ID of the security group that authorizes traffic between the RSessionGateway apps and the RStudioServerPro app.", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "SingleSignOnManagedApplicationInstanceId": { + "description": "The SSO managed application instance ID.", + "maxLength": 256, + "type": "string" + }, + "SubnetIds": { + "description": "The VPC subnets that Studio uses for communication.", + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "description": "A list of tags to apply to the user profile.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "description": "The URL to the created domain.", + "maxLength": 1024, + "type": "string" + }, + "VpcId": { + "description": "The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/DomainArn", + "/properties/Url", + "/properties/DomainId", + "/properties/HomeEfsFileSystemId", + "/properties/SecurityGroupIdForDomainBoundary", + "/properties/SingleSignOnManagedApplicationInstanceId" + ], + "required": [ + "AuthMode", + "DefaultUserSettings", + "DomainName", + "SubnetIds", + "VpcId" + ], + "typeName": "AWS::SageMaker::Domain", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-secretsmanager-secret.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-secretsmanager-secret.json deleted file mode 100644 index 3f7d28e857..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-secretsmanager-secret.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "GenerateSecretString": { - "additionalProperties": false, - "properties": { - "ExcludeCharacters": { - "type": "string" - }, - "ExcludeLowercase": { - "type": "boolean" - }, - "ExcludeNumbers": { - "type": "boolean" - }, - "ExcludePunctuation": { - "type": "boolean" - }, - "ExcludeUppercase": { - "type": "boolean" - }, - "GenerateStringKey": { - "type": "string" - }, - "IncludeSpace": { - "type": "boolean" - }, - "PasswordLength": { - "type": "integer" - }, - "RequireEachIncludedType": { - "type": "boolean" - }, - "SecretStringTemplate": { - "type": "string" - } - }, - "type": "object" - }, - "ReplicaRegion": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "required": [ - "Region" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::SecretsManager::Secret", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Description": { - "type": "string" - }, - "GenerateSecretString": { - "$ref": "#/definitions/GenerateSecretString" - }, - "Id": { - "type": "string" - }, - "KmsKeyId": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "ReplicaRegions": { - "items": { - "$ref": "#/definitions/ReplicaRegion" - }, - "type": "array", - "uniqueItems": false - }, - "SecretString": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "typeName": "AWS::SecretsManager::Secret" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-securityhub-hub.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-securityhub-hub.json new file mode 100644 index 0000000000..b0401a5225 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-securityhub-hub.json @@ -0,0 +1,28 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::SecurityHub::Hub", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoEnableControls": { + "type": "boolean" + }, + "ControlFindingGenerator": { + "type": "string" + }, + "EnableDefaultStandards": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SecurityHub::Hub" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-servicecatalogappregistry-application.json new file mode 100644 index 0000000000..b04a7d7289 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-servicecatalogappregistry-application.json @@ -0,0 +1,100 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Name" + ] + ], + "additionalProperties": false, + "definitions": { + "Tags": { + "additionalProperties": false, + "maxProperties": 50, + "patternProperties": { + "^[a-zA-Z+-=._:/]+$": { + "maxLength": 256, + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application", + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-application.html", + "handlers": { + "create": { + "permissions": [ + "servicecatalog:CreateApplication", + "servicecatalog:TagResource", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "servicecatalog:DeleteApplication" + ] + }, + "list": { + "permissions": [ + "servicecatalog:ListApplications" + ] + }, + "read": { + "permissions": [ + "servicecatalog:GetApplication" + ] + }, + "update": { + "permissions": [ + "servicecatalog:GetApplication", + "servicecatalog:ListTagsForResource", + "servicecatalog:TagResource", + "servicecatalog:UntagResource", + "servicecatalog:UpdateApplication", + "iam:CreateServiceLinkedRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", + "type": "string" + }, + "Description": { + "description": "The description of the application. ", + "maxLength": 1024, + "type": "string" + }, + "Id": { + "pattern": "[a-z0-9]{26}", + "type": "string" + }, + "Name": { + "description": "The name of the application. ", + "maxLength": 256, + "minLength": 1, + "pattern": "\\w+", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ServiceCatalogAppRegistry::Application" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/__init__.py b/src/cfnlint/data/schemas/providers/us_gov_west_1/__init__.py index 00b92765e1..1f043ea7c4 100644 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/__init__.py @@ -177,6 +177,7 @@ "AWS::IoT::ThingType", "AWS::GuardDuty::Member", "AWS::CloudFormation::CustomResource", + "AWS::FIS::TargetAccountConfiguration", "AWS::KinesisAnalytics::ApplicationOutput", "AWS::WAFv2::RuleGroup", "AWS::SES::ConfigurationSet", @@ -311,6 +312,7 @@ "AWS::CloudFormation::HookDefaultVersion", "AWS::Config::ConfigRule", "AWS::EC2::ClientVpnRoute", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::Location::Map", "AWS::ACMPCA::CertificateAuthorityActivation", @@ -369,6 +371,7 @@ "AWS::ServiceCatalog::AcceptedPortfolioShare", "AWS::Route53Resolver::FirewallRuleGroupAssociation", "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", "AWS::EC2::Subnet", "AWS::IoTTwinMaker::ComponentType", "AWS::S3ObjectLambda::AccessPoint", @@ -587,6 +590,7 @@ "AWS::EC2::IPAMAllocation", "AWS::WorkSpaces::Workspace", "AWS::Inspector::AssessmentTemplate", + "AWS::EMR::Studio", "AWS::EC2::InstanceConnectEndpoint", "AWS::DirectoryService::MicrosoftAD", "AWS::DataSync::LocationObjectStorage", @@ -706,7 +710,6 @@ "aws-guardduty-filter.json", "aws-ram-resourceshare.json", "aws-dynamodb-table.json", - "aws-ec2-securitygroupegress.json", "aws-ec2-localgatewayroutetablevpcassociation.json", "aws-config-organizationconfigrule.json", "aws-config-configurationrecorder.json", @@ -716,7 +719,6 @@ "aws-s3outposts-accesspoint.json", "aws-ec2-ipampoolcidr.json", "aws-redshift-clustersubnetgroup.json", - "aws-rds-dbinstance.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-iotevents-input.json", "aws-ec2-networkacl.json", @@ -772,7 +774,6 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", - "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-fsx-storagevirtualmachine.json", @@ -797,12 +798,12 @@ "aws-cognito-userpoolresourceserver.json", "aws-cloudformation-moduledefaultversion.json", "aws-sso-permissionset.json", + "aws-glue-job.json", "aws-servicecatalog-cloudformationprovisionedproduct.json", "aws-connect-view.json", + "aws-glue-table.json", "aws-logs-metricfilter.json", - "aws-lambda-function.json", "aws-datasync-locationfsxlustre.json", - "aws-sagemaker-app.json", "aws-cloudtrail-trail.json", "aws-appstream-stack.json", "aws-wafv2-ipset.json", @@ -823,7 +824,6 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", - "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-rds-dbproxytargetgroup.json", "aws-cloudwatch-dashboard.json", @@ -831,11 +831,12 @@ "aws-iot-thingtype.json", "aws-guardduty-member.json", "aws-cloudformation-customresource.json", + "aws-fis-targetaccountconfiguration.json", "aws-kinesisanalytics-applicationoutput.json", "aws-ses-configurationset.json", "aws-elasticache-parametergroup.json", + "aws-glue-classifier.json", "aws-connect-securityprofile.json", - "aws-codedeploy-deploymentgroup.json", "aws-cloudformation-stackset.json", "aws-fis-experimenttemplate.json", "aws-codecommit-repository.json", @@ -908,7 +909,6 @@ "aws-appstream-application.json", "aws-datasync-locationnfs.json", "aws-kinesisanalyticsv2-applicationoutput.json", - "aws-sagemaker-domain.json", "aws-greengrass-coredefinitionversion.json", "aws-certificatemanager-certificate.json", "aws-glue-schemaversionmetadata.json", @@ -921,7 +921,6 @@ "aws-redshift-clustersecuritygroupingress.json", "aws-servicecatalogappregistry-attributegroupassociation.json", "aws-elasticloadbalancingv2-loadbalancer.json", - "aws-opensearchservice-domain.json", "aws-timestream-database.json", "aws-servicediscovery-instance.json", "aws-elasticsearch-domain.json", @@ -952,7 +951,7 @@ "aws-networkmanager-globalnetwork.json", "aws-pinpoint-apnssandboxchannel.json", "aws-stepfunctions-statemachineversion.json", - "aws-servicecatalogappregistry-application.json", + "aws-glue-database.json", "aws-neptune-dbcluster.json", "aws-waf-bytematchset.json", "aws-iottwinmaker-scene.json", @@ -969,6 +968,7 @@ "aws-route53resolver-resolverdnssecconfig.json", "aws-route53resolver-firewallrulegroupassociation.json", "aws-route53resolver-resolverqueryloggingconfig.json", + "aws-ec2-snapshotblockpublicaccess.json", "aws-iottwinmaker-componenttype.json", "aws-s3objectlambda-accesspoint.json", "aws-waf-rule.json", @@ -980,6 +980,7 @@ "aws-ses-emailidentity.json", "aws-iam-usertogroupaddition.json", "aws-databrew-dataset.json", + "aws-glue-crawler.json", "aws-apigateway-method.json", "aws-ssm-patchbaseline.json", "aws-servicediscovery-service.json", @@ -995,9 +996,7 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", - "aws-emr-cluster.json", "aws-codepipeline-webhook.json", - "aws-rds-dbcluster.json", "aws-servicecatalog-resourceupdateconstraint.json", "aws-transfer-agreement.json", "aws-xray-group.json", @@ -1015,9 +1014,11 @@ "aws-sagemaker-appimageconfig.json", "aws-applicationautoscaling-scalingpolicy.json", "aws-iotsitewise-gateway.json", + "aws-emr-studiosessionmapping.json", "aws-cloudformation-macro.json", "aws-robomaker-robotapplication.json", "aws-sagemaker-workteam.json", + "aws-secretsmanager-secret.json", "aws-route53resolver-resolverconfig.json", "aws-elasticache-user.json", "aws-sagemaker-image.json", @@ -1027,7 +1028,6 @@ "aws-datasync-locations3.json", "aws-fsx-datarepositoryassociation.json", "aws-route53resolver-resolverqueryloggingconfigassociation.json", - "aws-lambda-eventinvokeconfig.json", "aws-rds-optiongroup.json", "aws-opsworks-userprofile.json", "aws-glue-schema.json", @@ -1049,6 +1049,7 @@ "aws-pinpoint-apnsvoipchannel.json", "aws-sso-instanceaccesscontrolattributeconfiguration.json", "aws-cloudwatch-anomalydetector.json", + "aws-ec2-subnetnetworkaclassociation.json", "aws-servicecatalog-serviceaction.json", "aws-appstream-entitlement.json", "aws-connect-viewversion.json", @@ -1129,6 +1130,7 @@ "aws-acmpca-certificate.json", "aws-ec2-ipamallocation.json", "aws-workspaces-workspace.json", + "aws-emr-studio.json", "aws-ec2-instanceconnectendpoint.json", "aws-directoryservice-microsoftad.json", "aws-datasync-locationobjectstorage.json", @@ -1171,7 +1173,7 @@ "aws-secretsmanager-secrettargetattachment.json", "aws-amazonmq-configuration.json", "aws-appconfig-deployment.json", - "aws-ec2-ec2fleet.json", + "aws-accessanalyzer-analyzer.json", "aws-pinpoint-inapptemplate.json", "aws-greengrass-resourcedefinition.json", "aws-dms-replicationinstance.json", @@ -1180,6 +1182,7 @@ "aws-pinpoint-voicechannel.json", "aws-datasync-locationfsxontap.json", "aws-lambda-version.json", + "aws-ec2-dhcpoptions.json", "aws-ec2-ipampool.json", "aws-kinesis-streamconsumer.json", "aws-licensemanager-license.json", @@ -1190,7 +1193,6 @@ "aws-rds-dbproxy.json", "aws-pinpoint-apnschannel.json", "aws-rds-dbparametergroup.json", - "aws-securityhub-hub.json", "aws-s3-accesspoint.json", "aws-greengrass-groupversion.json", "aws-pinpoint-smschannel.json", @@ -1199,7 +1201,6 @@ "aws-batch-jobqueue.json", "aws-elasticloadbalancingv2-listener.json", "aws-redshift-eventsubscription.json", - "aws-connect-user.json", "aws-cloudformation-waitconditionhandle.json", "aws-pinpoint-smstemplate.json", "aws-eks-addon.json", diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-accessanalyzer-analyzer.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-accessanalyzer-analyzer.json deleted file mode 100644 index 1f25416cce..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-accessanalyzer-analyzer.json +++ /dev/null @@ -1,191 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AnalyzerName", - "/properties/Type" - ], - "definitions": { - "ArchiveRule": { - "additionalProperties": false, - "description": "An Access Analyzer archive rule. Archive rules automatically archive new findings that meet the criteria you define when you create the rule.", - "properties": { - "Filter": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Filter" - }, - "minItems": 1, - "type": "array" - }, - "RuleName": { - "description": "The archive rule name", - "type": "string" - } - }, - "required": [ - "Filter", - "RuleName" - ], - "type": "object" - }, - "Filter": { - "additionalProperties": false, - "properties": { - "Contains": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "Eq": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "Exists": { - "type": "boolean" - }, - "Neq": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "Property": { - "type": "string" - } - }, - "required": [ - "Property" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "description": "A key-value pair to associate with a resource.", - "properties": { - "Key": { - "description": "The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", - "maxLength": 127, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "The value for the tag. You can specify a value that is 1 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "The AWS::AccessAnalyzer::Analyzer type specifies an analyzer of the user's account", - "handlers": { - "create": { - "permissions": [ - "access-analyzer:CreateAnalyzer", - "access-analyzer:TagResource", - "iam:CreateServiceLinkedRole", - "organizations:ListAWSServiceAccessForOrganization", - "organizations:ListDelegatedAdministrators" - ] - }, - "delete": { - "permissions": [ - "access-analyzer:DeleteAnalyzer" - ] - }, - "list": { - "permissions": [ - "access-analyzer:ListAnalyzers" - ] - }, - "read": { - "permissions": [ - "access-analyzer:ListAnalyzers", - "access-analyzer:GetAnalyzer", - "access-analyzer:ListArchiveRules" - ] - }, - "update": { - "permissions": [ - "access-analyzer:CreateArchiveRule", - "access-analyzer:DeleteArchiveRule", - "access-analyzer:ListAnalyzers", - "access-analyzer:TagResource", - "access-analyzer:UntagResource", - "access-analyzer:UpdateArchiveRule" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "AnalyzerName": { - "description": "Analyzer name", - "maxLength": 1024, - "minLength": 1, - "type": "string" - }, - "ArchiveRules": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ArchiveRule" - }, - "type": "array" - }, - "Arn": { - "description": "Amazon Resource Name (ARN) of the analyzer", - "maxLength": 1600, - "minLength": 1, - "type": "string" - }, - "Tags": { - "description": "An array of key-value pairs to apply to this resource.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "description": "The type of the analyzer, must be ACCOUNT or ORGANIZATION", - "maxLength": 1024, - "minLength": 0, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "Type" - ], - "resourceLink": { - "mappings": { - "AnalyzerName": "/AnalyzerName" - }, - "templateUri": "/access-analyzer/home?region=${awsRegion}#/analyzer/${AnalyzerName}" - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-accessanalyzer.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::AccessAnalyzer::Analyzer" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-codedeploy-deploymentgroup.json new file mode 100644 index 0000000000..208990a115 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-codedeploy-deploymentgroup.json @@ -0,0 +1,523 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentGroupName", + "/properties/ApplicationName" + ], + "definitions": { + "Alarm": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AlarmConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/Alarm" + }, + "type": "array", + "uniqueItems": true + }, + "Enabled": { + "type": "boolean" + }, + "IgnorePollAlarmFailure": { + "type": "boolean" + } + }, + "type": "object" + }, + "AutoRollbackConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Events": { + "items": { + "enum": [ + "DEPLOYMENT_FAILURE", + "DEPLOYMENT_STOP_ON_ALARM", + "DEPLOYMENT_STOP_ON_REQUEST" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "BlueGreenDeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "DeploymentReadyOption": { + "$ref": "#/definitions/DeploymentReadyOption" + }, + "GreenFleetProvisioningOption": { + "$ref": "#/definitions/GreenFleetProvisioningOption" + }, + "TerminateBlueInstancesOnDeploymentSuccess": { + "$ref": "#/definitions/BlueInstanceTerminationOption" + } + }, + "type": "object" + }, + "BlueInstanceTerminationOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "TerminationWaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "Deployment": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "IgnoreApplicationStopFailures": { + "type": "boolean" + }, + "Revision": { + "$ref": "#/definitions/RevisionLocation" + } + }, + "required": [ + "Revision" + ], + "type": "object" + }, + "DeploymentReadyOption": { + "additionalProperties": false, + "properties": { + "ActionOnTimeout": { + "type": "string" + }, + "WaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentStyle": { + "additionalProperties": false, + "properties": { + "DeploymentOption": { + "enum": [ + "WITH_TRAFFIC_CONTROL", + "WITHOUT_TRAFFIC_CONTROL" + ], + "type": "string" + }, + "DeploymentType": { + "enum": [ + "IN_PLACE", + "BLUE_GREEN" + ], + "type": "string" + } + }, + "type": "object" + }, + "EC2TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "EC2TagSet": { + "additionalProperties": false, + "properties": { + "Ec2TagSetList": { + "items": { + "$ref": "#/definitions/EC2TagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EC2TagSetListObject": { + "additionalProperties": false, + "properties": { + "Ec2TagGroup": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ECSService": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + } + }, + "required": [ + "ServiceName", + "ClusterName" + ], + "type": "object" + }, + "ELBInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "GitHubLocation": { + "additionalProperties": false, + "properties": { + "CommitId": { + "type": "string" + }, + "Repository": { + "type": "string" + } + }, + "required": [ + "Repository", + "CommitId" + ], + "type": "object" + }, + "GreenFleetProvisioningOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "type": "object" + }, + "LoadBalancerInfo": { + "additionalProperties": false, + "properties": { + "ElbInfoList": { + "items": { + "$ref": "#/definitions/ELBInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupPairInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupPairInfo" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSet": { + "additionalProperties": false, + "properties": { + "OnPremisesTagSetList": { + "items": { + "$ref": "#/definitions/OnPremisesTagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSetListObject": { + "additionalProperties": false, + "properties": { + "OnPremisesTagGroup": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "RevisionLocation": { + "additionalProperties": false, + "properties": { + "GitHubLocation": { + "$ref": "#/definitions/GitHubLocation" + }, + "RevisionType": { + "type": "string" + }, + "S3Location": { + "$ref": "#/definitions/S3Location" + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "BundleType": { + "type": "string" + }, + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupPairInfo": { + "additionalProperties": false, + "properties": { + "ProdTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + }, + "TargetGroups": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TestTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + } + }, + "type": "object" + }, + "TrafficRoute": { + "additionalProperties": false, + "properties": { + "ListenerArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerEvents": { + "items": { + "enum": [ + "DeploymentStart", + "DeploymentSuccess", + "DeploymentFailure", + "DeploymentStop", + "DeploymentRollback", + "DeploymentReady", + "InstanceStart", + "InstanceSuccess", + "InstanceFailure", + "InstanceReady" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "TriggerName": { + "type": "string" + }, + "TriggerTargetArn": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AlarmConfiguration": { + "$ref": "#/definitions/AlarmConfiguration" + }, + "ApplicationName": { + "type": "string" + }, + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AutoRollbackConfiguration" + }, + "AutoScalingGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BlueGreenDeploymentConfiguration": { + "$ref": "#/definitions/BlueGreenDeploymentConfiguration" + }, + "Deployment": { + "$ref": "#/definitions/Deployment" + }, + "DeploymentConfigName": { + "type": "string" + }, + "DeploymentGroupName": { + "type": "string" + }, + "DeploymentStyle": { + "$ref": "#/definitions/DeploymentStyle" + }, + "ECSServices": { + "items": { + "$ref": "#/definitions/ECSService" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagFilters": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagSet": { + "$ref": "#/definitions/EC2TagSet" + }, + "Id": { + "type": "string" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/LoadBalancerInfo" + }, + "OnPremisesInstanceTagFilters": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "OnPremisesTagSet": { + "$ref": "#/definitions/OnPremisesTagSet" + }, + "OutdatedInstancesStrategy": { + "type": "string" + }, + "ServiceRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TerminationHookEnabled": { + "type": "boolean" + }, + "TriggerConfigurations": { + "items": { + "$ref": "#/definitions/TriggerConfig" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "ServiceRoleArn" + ], + "typeName": "AWS::CodeDeploy::DeploymentGroup" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-connect-user.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-connect-user.json new file mode 100644 index 0000000000..b949608f4f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-connect-user.json @@ -0,0 +1,241 @@ +{ + "additionalProperties": false, + "definitions": { + "AfterContactWorkTimeLimit": { + "description": "The After Call Work (ACW) timeout setting, in seconds.", + "minimum": 0, + "type": "integer" + }, + "AutoAccept": { + "description": "The Auto accept setting.", + "type": "boolean" + }, + "DeskPhoneNumber": { + "description": "The phone number for the user's desk phone.", + "type": "string" + }, + "Email": { + "description": "The email address. If you are using SAML for identity management and include this parameter, an error is returned.", + "type": "string" + }, + "FirstName": { + "description": "The first name. This is required if you are using Amazon Connect or SAML for identity management.", + "type": "string" + }, + "LastName": { + "description": "The last name. This is required if you are using Amazon Connect or SAML for identity management.", + "type": "string" + }, + "Mobile": { + "description": "The mobile phone number.", + "pattern": "^\\+[1-9]\\d{1,14}$", + "type": "string" + }, + "PhoneType": { + "description": "The phone type.", + "enum": [ + "SOFT_PHONE", + "DESK_PHONE" + ], + "type": "string" + }, + "SecondaryEmail": { + "description": "The secondary email address. If you provide a secondary email, the user receives email notifications -- other than password reset notifications -- to this email address instead of to their primary email address.", + "pattern": "(?=^.{0,265}$)[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,63}", + "type": "string" + }, + "SecurityProfileArn": { + "description": "The identifier of the security profile for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/security-profile/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is maximum of 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserIdentityInfo": { + "additionalProperties": false, + "description": "Contains information about the identity of a user.", + "properties": { + "Email": { + "$ref": "#/definitions/Email" + }, + "FirstName": { + "$ref": "#/definitions/FirstName" + }, + "LastName": { + "$ref": "#/definitions/LastName" + }, + "Mobile": { + "$ref": "#/definitions/Mobile" + }, + "SecondaryEmail": { + "$ref": "#/definitions/SecondaryEmail" + } + }, + "type": "object" + }, + "UserPhoneConfig": { + "additionalProperties": false, + "description": "Contains information about the phone configuration settings for a user.", + "properties": { + "AfterContactWorkTimeLimit": { + "$ref": "#/definitions/AfterContactWorkTimeLimit" + }, + "AutoAccept": { + "$ref": "#/definitions/AutoAccept" + }, + "DeskPhoneNumber": { + "$ref": "#/definitions/DeskPhoneNumber" + }, + "PhoneType": { + "$ref": "#/definitions/PhoneType" + } + }, + "required": [ + "PhoneType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Connect::User", + "handlers": { + "create": { + "permissions": [ + "connect:CreateUser", + "connect:TagResource", + "connect:AssociateUserProficiencies" + ] + }, + "delete": { + "permissions": [ + "connect:DeleteUser", + "connect:UntagResource" + ] + }, + "read": { + "permissions": [ + "connect:DescribeUser", + "connect:ListUserProficiencies" + ] + }, + "update": { + "permissions": [ + "connect:UpdateUserIdentityInfo", + "connect:UpdateUserPhoneConfig", + "connect:UpdateUserRoutingProfile", + "connect:UpdateUserSecurityProfiles", + "connect:UpdateUserHierarchy", + "connect:TagResource", + "connect:UntagResource", + "connect:AssociateUserProficiencies", + "connect:DisassociateUserProficiencies", + "connect:UpdateUserProficiencies" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserArn" + ], + "properties": { + "DirectoryUserId": { + "description": "The identifier of the user account in the directory used for identity management.", + "type": "string" + }, + "HierarchyGroupArn": { + "description": "The identifier of the hierarchy group for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group/[-a-zA-Z0-9]*$", + "type": "string" + }, + "IdentityInfo": { + "$ref": "#/definitions/UserIdentityInfo", + "description": "The information about the identity of the user." + }, + "InstanceArn": { + "description": "The identifier of the Amazon Connect instance.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Password": { + "description": "The password for the user account. A password is required if you are using Amazon Connect for identity management. Otherwise, it is an error to include a password.", + "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d\\S]{8,64}$", + "type": "string" + }, + "PhoneConfig": { + "$ref": "#/definitions/UserPhoneConfig", + "description": "The phone settings for the user." + }, + "RoutingProfileArn": { + "description": "The identifier of the routing profile for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/routing-profile/[-a-zA-Z0-9]*$", + "type": "string" + }, + "SecurityProfileArns": { + "description": "One or more security profile arns for the user", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SecurityProfileArn" + }, + "maxItems": 10, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "description": "One or more tags.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserArn": { + "description": "The Amazon Resource Name (ARN) for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Username": { + "description": "The user name for the account.", + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\_\\-\\.\\@]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/UserArn" + ], + "required": [ + "InstanceArn", + "PhoneConfig", + "RoutingProfileArn", + "SecurityProfileArns", + "Username" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "typeName": "AWS::Connect::User", + "writeOnlyProperties": [ + "/properties/Password" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-dhcpoptions.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-dhcpoptions.json deleted file mode 100644 index 51255a32c1..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-dhcpoptions.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/NetbiosNameServers", - "/properties/NetbiosNodeType", - "/properties/NtpServers", - "/properties/DomainName", - "/properties/DomainNameServers" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EC2::DHCPOptions", - "handlers": { - "create": { - "permissions": [ - "ec2:CreateDhcpOptions", - "ec2:DescribeDhcpOptions", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteDhcpOptions", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeDhcpOptions" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeDhcpOptions", - "ec2:DescribeTags" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTags", - "ec2:DescribeDhcpOptions", - "ec2:DeleteTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/DhcpOptionsId" - ], - "properties": { - "DhcpOptionsId": { - "type": "string" - }, - "DomainName": { - "description": "This value is used to complete unqualified DNS hostnames.", - "type": "string" - }, - "DomainNameServers": { - "description": "The IPv4 addresses of up to four domain name servers, or AmazonProvidedDNS.", - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "NetbiosNameServers": { - "description": "The IPv4 addresses of up to four NetBIOS name servers.", - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "NetbiosNodeType": { - "description": "The NetBIOS node type (1, 2, 4, or 8).", - "enum": [ - "1", - "2", - "4", - "8" - ], - "type": "integer" - }, - "NtpServers": { - "description": "The IPv4 addresses of up to four Network Time Protocol (NTP) servers.", - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "description": "Any tags assigned to the DHCP options set.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/DhcpOptionsId" - ], - "taggable": true, - "typeName": "AWS::EC2::DHCPOptions" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-ec2fleet.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-ec2fleet.json new file mode 100644 index 0000000000..246f05c2ab --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-ec2fleet.json @@ -0,0 +1,710 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/LaunchTemplateConfigs", + "/properties/OnDemandOptions", + "/properties/ReplaceUnhealthyInstances", + "/properties/SpotOptions", + "/properties/TagSpecifications", + "/properties/TerminateInstancesWithExpiration", + "/properties/Type", + "/properties/ValidFrom", + "/properties/ValidUntil" + ], + "definitions": { + "AcceleratorCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "CapacityRebalance": { + "additionalProperties": false, + "properties": { + "ReplacementStrategy": { + "enum": [ + "launch", + "launch-before-terminate" + ], + "type": "string" + }, + "TerminationDelay": { + "type": "integer" + } + }, + "type": "object" + }, + "CapacityReservationOptionsRequest": { + "additionalProperties": false, + "properties": { + "UsageStrategy": { + "enum": [ + "use-capacity-reservations-first" + ], + "type": "string" + } + }, + "type": "object" + }, + "FleetLaunchTemplateConfigRequest": { + "additionalProperties": false, + "properties": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/FleetLaunchTemplateSpecificationRequest" + }, + "Overrides": { + "items": { + "$ref": "#/definitions/FleetLaunchTemplateOverridesRequest" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "FleetLaunchTemplateOverridesRequest": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "InstanceRequirements": { + "$ref": "#/definitions/InstanceRequirementsRequest" + }, + "InstanceType": { + "type": "string" + }, + "MaxPrice": { + "type": "string" + }, + "Placement": { + "$ref": "#/definitions/Placement" + }, + "Priority": { + "type": "number" + }, + "SubnetId": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "FleetLaunchTemplateSpecificationRequest": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "maxLength": 128, + "minLength": 3, + "pattern": "[a-zA-Z0-9\\(\\)\\.\\-/_]+", + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "InstanceRequirementsRequest": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AcceleratorCountRequest" + }, + "AcceleratorManufacturers": { + "items": { + "enum": [ + "nvidia", + "amd", + "amazon-web-services", + "xilinx" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "AcceleratorNames": { + "items": { + "enum": [ + "a100", + "v100", + "k80", + "t4", + "m60", + "radeon-pro-v520", + "vu9p", + "inferentia", + "k520" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AcceleratorTotalMemoryMiBRequest" + }, + "AcceleratorTypes": { + "items": { + "enum": [ + "gpu", + "fpga", + "inference" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "AllowedInstanceTypes": { + "items": { + "maxLength": 30, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\.\\*]+", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "BareMetal": { + "enum": [ + "included", + "required", + "excluded" + ], + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/BaselineEbsBandwidthMbpsRequest" + }, + "BurstablePerformance": { + "enum": [ + "included", + "required", + "excluded" + ], + "type": "string" + }, + "CpuManufacturers": { + "items": { + "enum": [ + "intel", + "amd", + "amazon-web-services" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ExcludedInstanceTypes": { + "items": { + "maxLength": 30, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\.\\*]+", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "InstanceGenerations": { + "items": { + "enum": [ + "current", + "previous" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "LocalStorage": { + "enum": [ + "included", + "required", + "excluded" + ], + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "enum": [ + "hdd", + "ssd" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/MemoryGiBPerVCpuRequest" + }, + "MemoryMiB": { + "$ref": "#/definitions/MemoryMiBRequest" + }, + "NetworkBandwidthGbps": { + "$ref": "#/definitions/NetworkBandwidthGbpsRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/NetworkInterfaceCountRequest" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "integer" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "integer" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/TotalLocalStorageGBRequest" + }, + "VCpuCount": { + "$ref": "#/definitions/VCpuCountRangeRequest" + } + }, + "type": "object" + }, + "MaintenanceStrategies": { + "additionalProperties": false, + "properties": { + "CapacityRebalance": { + "$ref": "#/definitions/CapacityRebalance" + } + }, + "type": "object" + }, + "MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "NetworkBandwidthGbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "OnDemandOptionsRequest": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "enum": [ + "lowest-price", + "prioritized" + ], + "type": "string" + }, + "CapacityReservationOptions": { + "$ref": "#/definitions/CapacityReservationOptionsRequest" + }, + "MaxTotalPrice": { + "type": "string" + }, + "MinTargetCapacity": { + "type": "integer" + }, + "SingleAvailabilityZone": { + "type": "boolean" + }, + "SingleInstanceType": { + "type": "boolean" + } + }, + "type": "object" + }, + "Placement": { + "additionalProperties": false, + "properties": { + "Affinity": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "PartitionNumber": { + "type": "integer" + }, + "SpreadDomain": { + "type": "string" + }, + "Tenancy": { + "type": "string" + } + }, + "type": "object" + }, + "SpotOptionsRequest": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "enum": [ + "lowest-price", + "lowestPrice", + "diversified", + "capacityOptimized", + "capacity-optimized", + "capacityOptimizedPrioritized", + "capacity-optimized-prioritized", + "priceCapacityOptimized", + "price-capacity-optimized" + ], + "type": "string" + }, + "InstanceInterruptionBehavior": { + "enum": [ + "hibernate", + "stop", + "terminate" + ], + "type": "string" + }, + "InstancePoolsToUseCount": { + "type": "integer" + }, + "MaintenanceStrategies": { + "$ref": "#/definitions/MaintenanceStrategies" + }, + "MaxTotalPrice": { + "type": "string" + }, + "MinTargetCapacity": { + "type": "integer" + }, + "SingleAvailabilityZone": { + "type": "boolean" + }, + "SingleInstanceType": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "enum": [ + "client-vpn-endpoint", + "customer-gateway", + "dedicated-host", + "dhcp-options", + "egress-only-internet-gateway", + "elastic-gpu", + "elastic-ip", + "export-image-task", + "export-instance-task", + "fleet", + "fpga-image", + "host-reservation", + "image", + "import-image-task", + "import-snapshot-task", + "instance", + "internet-gateway", + "key-pair", + "launch-template", + "local-gateway-route-table-vpc-association", + "natgateway", + "network-acl", + "network-insights-analysis", + "network-insights-path", + "network-interface", + "placement-group", + "reserved-instances", + "route-table", + "security-group", + "snapshot", + "spot-fleet-request", + "spot-instances-request", + "subnet", + "traffic-mirror-filter", + "traffic-mirror-session", + "traffic-mirror-target", + "transit-gateway", + "transit-gateway-attachment", + "transit-gateway-connect-peer", + "transit-gateway-multicast-domain", + "transit-gateway-route-table", + "volume", + "vpc", + "vpc-flow-log", + "vpc-peering-connection", + "vpn-connection", + "vpn-gateway" + ], + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "TargetCapacitySpecificationRequest": { + "additionalProperties": false, + "properties": { + "DefaultTargetCapacityType": { + "enum": [ + "on-demand", + "spot" + ], + "type": "string" + }, + "OnDemandTargetCapacity": { + "type": "integer" + }, + "SpotTargetCapacity": { + "type": "integer" + }, + "TargetCapacityUnitType": { + "enum": [ + "vcpu", + "memory-mib", + "units" + ], + "type": "string" + }, + "TotalTargetCapacity": { + "type": "integer" + } + }, + "required": [ + "TotalTargetCapacity" + ], + "type": "object" + }, + "TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "VCpuCountRangeRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::EC2Fleet", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateFleet", + "ec2:DescribeFleets" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeFleets", + "ec2:DeleteFleets" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeFleets" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeFleets" + ] + }, + "update": { + "permissions": [ + "ec2:ModifyFleet", + "ec2:DescribeFleets" + ] + } + }, + "primaryIdentifier": [ + "/properties/FleetId" + ], + "properties": { + "Context": { + "type": "string" + }, + "ExcessCapacityTerminationPolicy": { + "enum": [ + "termination", + "no-termination" + ], + "type": "string" + }, + "FleetId": { + "type": "string" + }, + "LaunchTemplateConfigs": { + "items": { + "$ref": "#/definitions/FleetLaunchTemplateConfigRequest" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + }, + "OnDemandOptions": { + "$ref": "#/definitions/OnDemandOptionsRequest" + }, + "ReplaceUnhealthyInstances": { + "type": "boolean" + }, + "SpotOptions": { + "$ref": "#/definitions/SpotOptionsRequest" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/TagSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "TargetCapacitySpecification": { + "$ref": "#/definitions/TargetCapacitySpecificationRequest" + }, + "TerminateInstancesWithExpiration": { + "type": "boolean" + }, + "Type": { + "enum": [ + "maintain", + "request", + "instant" + ], + "type": "string" + }, + "ValidFrom": { + "type": "string" + }, + "ValidUntil": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/FleetId" + ], + "required": [ + "TargetCapacitySpecification", + "LaunchTemplateConfigs" + ], + "typeName": "AWS::EC2::EC2Fleet" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-securitygroupegress.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-securitygroupegress.json new file mode 100644 index 0000000000..bda5e89487 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-securitygroupegress.json @@ -0,0 +1,57 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/IpProtocol", + "/properties/DestinationSecurityGroupId", + "/properties/ToPort", + "/properties/CidrIp", + "/properties/FromPort", + "/properties/GroupId", + "/properties/CidrIpv6", + "/properties/DestinationPrefixListId" + ], + "description": "Resource Type definition for AWS::EC2::SecurityGroupEgress", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CidrIp": { + "type": "string" + }, + "CidrIpv6": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DestinationPrefixListId": { + "type": "string" + }, + "DestinationSecurityGroupId": { + "type": "string" + }, + "FromPort": { + "type": "integer" + }, + "GroupId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IpProtocol": { + "type": "string" + }, + "ToPort": { + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "IpProtocol", + "GroupId" + ], + "typeName": "AWS::EC2::SecurityGroupEgress" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-subnetnetworkaclassociation.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-subnetnetworkaclassociation.json deleted file mode 100644 index 190241b970..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-subnetnetworkaclassociation.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SubnetId", - "/properties/NetworkAclId" - ], - "description": "Resource Type definition for AWS::EC2::SubnetNetworkAclAssociation", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AssociationId": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "NetworkAclId": { - "type": "string" - }, - "SubnetId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/AssociationId" - ], - "required": [ - "NetworkAclId", - "SubnetId" - ], - "typeName": "AWS::EC2::SubnetNetworkAclAssociation" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-emr-cluster.json new file mode 100644 index 0000000000..7ce37fccb6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-emr-cluster.json @@ -0,0 +1,858 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Steps", + "/properties/EbsRootVolumeSize", + "/properties/SecurityConfiguration", + "/properties/ScaleDownBehavior", + "/properties/Configurations", + "/properties/ReleaseLabel", + "/properties/BootstrapActions", + "/properties/EbsRootVolumeIops", + "/properties/KerberosAttributes", + "/properties/ServiceRole", + "/properties/LogEncryptionKmsKeyId", + "/properties/Name", + "/properties/EbsRootVolumeThroughput", + "/properties/JobFlowRole", + "/properties/AdditionalInfo", + "/properties/LogUri", + "/properties/CustomAmiId", + "/properties/PlacementGroupConfigs", + "/properties/OSReleaseLabel", + "/properties/AutoScalingRole", + "/properties/Applications" + ], + "definitions": { + "Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ScalingRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/ScriptBootstrapActionConfig" + } + }, + "required": [ + "ScriptBootstrapAction", + "Name" + ], + "type": "object" + }, + "CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "EvaluationPeriods": { + "type": "integer" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "integer" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "ComparisonOperator", + "Period", + "Threshold" + ], + "type": "object" + }, + "ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "integer" + }, + "MaximumCoreCapacityUnits": { + "type": "integer" + }, + "MaximumOnDemandCapacityUnits": { + "type": "integer" + }, + "MinimumCapacityUnits": { + "type": "integer" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "UnitType", + "MaximumCapacityUnits", + "MinimumCapacityUnits" + ], + "type": "object" + }, + "Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "integer" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/EbsBlockDeviceConfig" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/KeyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/InstanceTypeConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchSpecifications": { + "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "integer" + }, + "TargetSpotCapacity": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/OnDemandProvisioningSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/SpotProvisioningSpecification" + } + }, + "type": "object" + }, + "InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceType": { + "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", + "type": "string" + }, + "WeightedCapacity": { + "type": "integer" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/ComputeLimits" + } + }, + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "PlacementGroupConfig": { + "additionalProperties": false, + "properties": { + "InstanceRole": { + "type": "string" + }, + "PlacementStrategy": { + "type": "string" + } + }, + "required": [ + "InstanceRole" + ], + "type": "object" + }, + "PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/ScalingTrigger" + } + }, + "required": [ + "Action", + "Trigger", + "Name" + ], + "type": "object" + }, + "ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BlockDurationMinutes": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "integer" + } + }, + "required": [ + "TimeoutDurationMinutes", + "TimeoutAction" + ], + "type": "object" + }, + "StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "integer" + }, + "SizeInGB": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EMR::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/Application" + }, + "type": "array", + "uniqueItems": true + }, + "AutoScalingRole": { + "type": "string" + }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AutoTerminationPolicy" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/BootstrapActionConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeIops": { + "type": "integer" + }, + "EbsRootVolumeSize": { + "type": "integer" + }, + "EbsRootVolumeThroughput": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Instances": { + "$ref": "#/definitions/JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/KerberosAttributes" + }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, + "LogUri": { + "type": "string" + }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/ManagedScalingPolicy" + }, + "MasterPublicDNS": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OSReleaseLabel": { + "type": "string" + }, + "PlacementGroupConfigs": { + "items": { + "$ref": "#/definitions/PlacementGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "StepConcurrencyLevel": { + "type": "integer" + }, + "Steps": { + "items": { + "$ref": "#/definitions/StepConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/MasterPublicDNS" + ], + "required": [ + "Instances", + "ServiceRole", + "JobFlowRole", + "Name" + ], + "typeName": "AWS::EMR::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-emr-studiosessionmapping.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-emr-studiosessionmapping.json deleted file mode 100644 index bfb5c89509..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-emr-studiosessionmapping.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StudioId", - "/properties/IdentityType", - "/properties/IdentityName" - ], - "definitions": { - "IamPolicyArn": { - "pattern": "^arn:aws(-(cn|us-gov))?:iam::([0-9]{12})?:policy\\/[^.]+$", - "type": "string" - } - }, - "description": "An example resource schema demonstrating some basic constructs and validation rules.", - "documentationUrl": "https://docs.aws.amazon.com/cli/latest/reference/emr/create-studio-session-mapping.html", - "handlers": { - "create": { - "permissions": [ - "elasticmapreduce:CreateStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:ListDirectoryAssociations", - "sso:GetProfile", - "sso:ListProfiles", - "sso:AssociateProfile" - ] - }, - "delete": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "elasticmapreduce:DeleteStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance", - "sso:DescribeInstance", - "sso:ListDirectoryAssociations", - "sso:GetProfile", - "sso:ListProfiles", - "sso:DisassociateProfile" - ] - }, - "list": { - "permissions": [ - "elasticmapreduce:ListStudioSessionMappings" - ] - }, - "read": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance", - "sso:DescribeInstance" - ] - }, - "update": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "elasticmapreduce:UpdateStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance", - "sso:DescribeInstance" - ] - } - }, - "primaryIdentifier": [ - "/properties/StudioId", - "/properties/IdentityType", - "/properties/IdentityName" - ], - "properties": { - "IdentityName": { - "description": "The name of the user or group. For more information, see UserName and DisplayName in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId must be specified.", - "type": "string" - }, - "IdentityType": { - "description": "Specifies whether the identity to map to the Studio is a user or a group.", - "enum": [ - "USER", - "GROUP" - ], - "type": "string" - }, - "SessionPolicyArn": { - "$ref": "#/definitions/IamPolicyArn", - "description": "The Amazon Resource Name (ARN) for the session policy that will be applied to the user or group. Session policies refine Studio user permissions without the need to use multiple IAM user roles." - }, - "StudioId": { - "description": "The ID of the Amazon EMR Studio to which the user or group will be mapped.", - "maxLength": 256, - "minLength": 4, - "pattern": "^es-[0-9A-Z]+", - "type": "string" - } - }, - "required": [ - "StudioId", - "IdentityName", - "IdentityType", - "SessionPolicyArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::EMR::StudioSessionMapping" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-classifier.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-classifier.json deleted file mode 100644 index 098d909845..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-classifier.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "CsvClassifier": { - "additionalProperties": false, - "properties": { - "AllowSingleColumn": { - "type": "boolean" - }, - "ContainsHeader": { - "type": "string" - }, - "Delimiter": { - "type": "string" - }, - "DisableValueTrimming": { - "type": "boolean" - }, - "Header": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Name": { - "type": "string" - }, - "QuoteSymbol": { - "type": "string" - } - }, - "type": "object" - }, - "GrokClassifier": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "CustomPatterns": { - "type": "string" - }, - "GrokPattern": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "GrokPattern", - "Classification" - ], - "type": "object" - }, - "JsonClassifier": { - "additionalProperties": false, - "properties": { - "JsonPath": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "JsonPath" - ], - "type": "object" - }, - "XMLClassifier": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "RowTag": { - "type": "string" - } - }, - "required": [ - "RowTag", - "Classification" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::Glue::Classifier", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CsvClassifier": { - "$ref": "#/definitions/CsvClassifier" - }, - "GrokClassifier": { - "$ref": "#/definitions/GrokClassifier" - }, - "Id": { - "type": "string" - }, - "JsonClassifier": { - "$ref": "#/definitions/JsonClassifier" - }, - "XMLClassifier": { - "$ref": "#/definitions/XMLClassifier" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "typeName": "AWS::Glue::Classifier" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-crawler.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-crawler.json deleted file mode 100644 index ab4b1beb08..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-crawler.json +++ /dev/null @@ -1,232 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "CatalogTarget": { - "additionalProperties": false, - "properties": { - "DatabaseName": { - "type": "string" - }, - "Tables": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "DynamoDBTarget": { - "additionalProperties": false, - "properties": { - "Path": { - "type": "string" - } - }, - "type": "object" - }, - "JdbcTarget": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Exclusions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Path": { - "type": "string" - } - }, - "type": "object" - }, - "MongoDBTarget": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Path": { - "type": "string" - } - }, - "type": "object" - }, - "RecrawlPolicy": { - "additionalProperties": false, - "properties": { - "RecrawlBehavior": { - "type": "string" - } - }, - "type": "object" - }, - "S3Target": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "DlqEventQueueArn": { - "type": "string" - }, - "EventQueueArn": { - "type": "string" - }, - "Exclusions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Path": { - "type": "string" - }, - "SampleSize": { - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "properties": { - "ScheduleExpression": { - "type": "string" - } - }, - "type": "object" - }, - "SchemaChangePolicy": { - "additionalProperties": false, - "properties": { - "DeleteBehavior": { - "enum": [ - "LOG", - "DELETE_FROM_DATABASE", - "DEPRECATE_IN_DATABASE" - ], - "type": "string" - }, - "UpdateBehavior": { - "enum": [ - "LOG", - "UPDATE_IN_DATABASE" - ], - "type": "string" - } - }, - "type": "object" - }, - "Targets": { - "additionalProperties": false, - "properties": { - "CatalogTargets": { - "items": { - "$ref": "#/definitions/CatalogTarget" - }, - "type": "array", - "uniqueItems": false - }, - "DynamoDBTargets": { - "items": { - "$ref": "#/definitions/DynamoDBTarget" - }, - "type": "array", - "uniqueItems": false - }, - "JdbcTargets": { - "items": { - "$ref": "#/definitions/JdbcTarget" - }, - "type": "array", - "uniqueItems": false - }, - "MongoDBTargets": { - "items": { - "$ref": "#/definitions/MongoDBTarget" - }, - "type": "array", - "uniqueItems": false - }, - "S3Targets": { - "items": { - "$ref": "#/definitions/S3Target" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::Glue::Crawler", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Classifiers": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Configuration": { - "type": "string" - }, - "CrawlerSecurityConfiguration": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "RecrawlPolicy": { - "$ref": "#/definitions/RecrawlPolicy" - }, - "Role": { - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule" - }, - "SchemaChangePolicy": { - "$ref": "#/definitions/SchemaChangePolicy" - }, - "TablePrefix": { - "type": "string" - }, - "Tags": { - "type": "object" - }, - "Targets": { - "$ref": "#/definitions/Targets" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Role", - "Targets" - ], - "typeName": "AWS::Glue::Crawler" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-database.json deleted file mode 100644 index fb8bf5db19..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-database.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::Glue::Database", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-job.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-job.json deleted file mode 100644 index c4b6de1a48..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-job.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "ConnectionsList": { - "additionalProperties": false, - "properties": { - "Connections": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "ExecutionProperty": { - "additionalProperties": false, - "properties": { - "MaxConcurrentRuns": { - "type": "number" - } - }, - "type": "object" - }, - "JobCommand": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "PythonVersion": { - "type": "string" - }, - "ScriptLocation": { - "type": "string" - } - }, - "type": "object" - }, - "NotificationProperty": { - "additionalProperties": false, - "properties": { - "NotifyDelayAfter": { - "type": "integer" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::Glue::Job", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AllocatedCapacity": { - "type": "number" - }, - "Command": { - "$ref": "#/definitions/JobCommand" - }, - "Connections": { - "$ref": "#/definitions/ConnectionsList" - }, - "DefaultArguments": { - "type": "object" - }, - "Description": { - "type": "string" - }, - "ExecutionClass": { - "type": "string" - }, - "ExecutionProperty": { - "$ref": "#/definitions/ExecutionProperty" - }, - "GlueVersion": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "MaxCapacity": { - "type": "number" - }, - "MaxRetries": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "NonOverridableArguments": { - "type": "object" - }, - "NotificationProperty": { - "$ref": "#/definitions/NotificationProperty" - }, - "NumberOfWorkers": { - "maximum": 299, - "minimum": 0, - "type": "integer" - }, - "Role": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "Tags": { - "type": "object" - }, - "Timeout": { - "type": "integer" - }, - "WorkerType": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Role", - "Command" - ], - "typeName": "AWS::Glue::Job" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-table.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-table.json deleted file mode 100644 index 12305076ed..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-table.json +++ /dev/null @@ -1,285 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DatabaseName", - "/properties/CatalogId" - ], - "definitions": { - "Column": { - "additionalProperties": false, - "properties": { - "Comment": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "IcebergInput": { - "additionalProperties": false, - "properties": { - "MetadataOperation": { - "$ref": "#/definitions/MetadataOperation" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "MetadataOperation": { - "additionalProperties": false, - "type": "object" - }, - "OpenTableFormatInput": { - "additionalProperties": false, - "properties": { - "IcebergInput": { - "$ref": "#/definitions/IcebergInput" - } - }, - "type": "object" - }, - "Order": { - "additionalProperties": false, - "properties": { - "Column": { - "type": "string" - }, - "SortOrder": { - "type": "integer" - } - }, - "required": [ - "Column", - "SortOrder" - ], - "type": "object" - }, - "SchemaId": { - "additionalProperties": false, - "properties": { - "RegistryName": { - "type": "string" - }, - "SchemaArn": { - "type": "string" - }, - "SchemaName": { - "type": "string" - } - }, - "type": "object" - }, - "SchemaReference": { - "additionalProperties": false, - "properties": { - "SchemaId": { - "$ref": "#/definitions/SchemaId" - }, - "SchemaVersionId": { - "type": "string" - }, - "SchemaVersionNumber": { - "type": "integer" - } - }, - "type": "object" - }, - "SerdeInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerializationLibrary": { - "type": "string" - } - }, - "type": "object" - }, - "SkewedInfo": { - "additionalProperties": false, - "properties": { - "SkewedColumnNames": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "SkewedColumnValueLocationMaps": { - "type": "object" - }, - "SkewedColumnValues": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "StorageDescriptor": { - "additionalProperties": false, - "properties": { - "BucketColumns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Columns": { - "items": { - "$ref": "#/definitions/Column" - }, - "type": "array", - "uniqueItems": false - }, - "Compressed": { - "type": "boolean" - }, - "InputFormat": { - "type": "string" - }, - "Location": { - "type": "string" - }, - "NumberOfBuckets": { - "type": "integer" - }, - "OutputFormat": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SchemaReference": { - "$ref": "#/definitions/SchemaReference" - }, - "SerdeInfo": { - "$ref": "#/definitions/SerdeInfo" - }, - "SkewedInfo": { - "$ref": "#/definitions/SkewedInfo" - }, - "SortColumns": { - "items": { - "$ref": "#/definitions/Order" - }, - "type": "array", - "uniqueItems": false - }, - "StoredAsSubDirectories": { - "type": "boolean" - } - }, - "type": "object" - }, - "TableIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TableInput": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Owner": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "PartitionKeys": { - "items": { - "$ref": "#/definitions/Column" - }, - "type": "array", - "uniqueItems": false - }, - "Retention": { - "type": "integer" - }, - "StorageDescriptor": { - "$ref": "#/definitions/StorageDescriptor" - }, - "TableType": { - "enum": [ - "EXTERNAL_TABLE", - "VIRTUAL_VIEW" - ], - "type": "string" - }, - "TargetTable": { - "$ref": "#/definitions/TableIdentifier" - }, - "ViewExpandedText": { - "type": "string" - }, - "ViewOriginalText": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::Glue::Table", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "OpenTableFormatInput": { - "$ref": "#/definitions/OpenTableFormatInput" - }, - "TableInput": { - "$ref": "#/definitions/TableInput" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "TableInput", - "DatabaseName", - "CatalogId" - ], - "typeName": "AWS::Glue::Table" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-imagebuilder-image.json new file mode 100644 index 0000000000..5582329923 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-imagebuilder-image.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ImageRecipeArn", + "/properties/ContainerRecipeArn", + "/properties/InfrastructureConfigurationArn", + "/properties/DistributionConfigurationArn", + "/properties/ImageTestsConfiguration", + "/properties/ImageScanningConfiguration", + "/properties/EnhancedImageMetadataEnabled", + "/properties/Tags" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Contains settings for Image Builder image resource and container image scans.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "The image tests configuration used when creating this image.", + "properties": { + "ImageTestsEnabled": { + "description": "ImageTestsEnabled", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "TimeoutMinutes", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::ImageBuilder::Image", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:GetImage", + "imagebuilder:CreateImage", + "imagebuilder:TagResource", + "inspector2:BatchGetAccountStatus" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "imagebuilder:GetImage", + "imagebuilder:DeleteImage", + "imagebuilder:UnTagResource", + "imagebuilder:CancelImageCreation" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListImages" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImage" + ] + } + }, + "oneOf": [ + { + "required": [ + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ImageId": { + "description": "The AMI ID of the EC2 AMI in current region.", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration used when creating this image." + }, + "ImageUri": { + "description": "URI for containers created in current Region with default ECR image tag", + "type": "string" + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", + "type": "string" + }, + "Name": { + "description": "The name of the image.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the image.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Name", + "/properties/ImageId", + "/properties/ImageUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Image" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-imagebuilder-imagepipeline.json new file mode 100644 index 0000000000..3cf9b2a4a9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-imagebuilder-imagepipeline.json @@ -0,0 +1,277 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "Image tests configuration.", + "properties": { + "ImageTestsEnabled": { + "description": "Defines if tests should be executed when building this image.", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "The maximum time in minutes that tests are permitted to run.", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "description": "The schedule of the image pipeline.", + "properties": { + "PipelineExecutionStartCondition": { + "description": "The condition configures when the pipeline should trigger a new image build.", + "enum": [ + "EXPRESSION_MATCH_ONLY", + "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + ], + "type": "string" + }, + "ScheduleExpression": { + "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowConfiguration": { + "additionalProperties": false, + "description": "The workflow configuration of the image", + "properties": { + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "enum": [ + "CONTINUE", + "ABORT" + ], + "type": "string" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string" + }, + "Parameters": { + "description": "The parameters associated with the workflow", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "type": "array" + }, + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowParameter": { + "additionalProperties": false, + "description": "A parameter associated with the workflow", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowParameterValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", + "type": "string" + } + }, + "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:CreateImagePipeline", + "imagebuilder:GetWorkflow", + "inspector2:BatchGetAccountStatus" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:UnTagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:DeleteImagePipeline" + ] + }, + "list": { + "permissions": [ + "imagebuilder:ListImagePipelines" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImagePipeline" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "imagebuilder:GetImagePipeline", + "imagebuilder:UpdateImagePipeline", + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Name", + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "Name", + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image pipeline.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "Description": { + "description": "The description of the image pipeline.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration of the image pipeline." + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", + "type": "string" + }, + "Name": { + "description": "The name of the image pipeline.", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule", + "description": "The schedule of the image pipeline." + }, + "Status": { + "description": "The status of the image pipeline.", + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags of this image pipeline.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::ImagePipeline" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-imagebuilder-workflow.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-imagebuilder-workflow.json new file mode 100644 index 0000000000..5c25c2361b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-imagebuilder-workflow.json @@ -0,0 +1,145 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Version", + "/properties/ChangeDescription", + "/properties/Description", + "/properties/Data", + "/properties/Uri", + "/properties/Type", + "/properties/KmsKeyId", + "/properties/Tags" + ], + "description": "Resource schema for AWS::ImageBuilder::Workflow", + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "kms:GenerateDataKey*", + "kms:Encrypt", + "kms:Decrypt", + "s3:GetObject", + "s3:HeadBucket", + "s3:GetBucketLocation", + "imagebuilder:TagResource", + "imagebuilder:GetWorkflow", + "imagebuilder:CreateWorkflow" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:GetWorkflow", + "imagebuilder:UnTagResource", + "imagebuilder:DeleteWorkflow" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListWorkflows" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Data" + ] + }, + { + "required": [ + "Uri" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the workflow.", + "type": "string" + }, + "ChangeDescription": { + "description": "The change description of the workflow.", + "type": "string" + }, + "Data": { + "description": "The data of the workflow.", + "maxLength": 16000, + "minLength": 1, + "type": "string" + }, + "Description": { + "description": "The description of the workflow.", + "type": "string" + }, + "KmsKeyId": { + "description": "The KMS key identifier used to encrypt the workflow.", + "type": "string" + }, + "Name": { + "description": "The name of the workflow.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the workflow.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "description": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.", + "enum": [ + "BUILD", + "TEST", + "DISTRIBUTION" + ], + "type": "string" + }, + "Uri": { + "description": "The uri of the workflow.", + "type": "string" + }, + "Version": { + "description": "The version of the workflow.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "Name", + "Type", + "Version" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Workflow", + "writeOnlyProperties": [ + "/properties/Data", + "/properties/Uri" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-lambda-eventinvokeconfig.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-lambda-eventinvokeconfig.json new file mode 100644 index 0000000000..7062267808 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-lambda-eventinvokeconfig.json @@ -0,0 +1,77 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FunctionName", + "/properties/Qualifier" + ], + "definitions": { + "DestinationConfig": { + "additionalProperties": false, + "properties": { + "OnFailure": { + "$ref": "#/definitions/OnFailure" + }, + "OnSuccess": { + "$ref": "#/definitions/OnSuccess" + } + }, + "type": "object" + }, + "OnFailure": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + } + }, + "required": [ + "Destination" + ], + "type": "object" + }, + "OnSuccess": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + } + }, + "required": [ + "Destination" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Lambda::EventInvokeConfig", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DestinationConfig": { + "$ref": "#/definitions/DestinationConfig" + }, + "FunctionName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "MaximumEventAgeInSeconds": { + "type": "integer" + }, + "MaximumRetryAttempts": { + "type": "integer" + }, + "Qualifier": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "Qualifier" + ], + "typeName": "AWS::Lambda::EventInvokeConfig" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-lambda-function.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-lambda-function.json similarity index 99% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-lambda-function.json rename to src/cfnlint/data/schemas/providers/us_gov_west_1/aws-lambda-function.json index eef62c32fd..486712593c 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-lambda-function.json +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-lambda-function.json @@ -502,6 +502,10 @@ ], "type": "string" }, + "Policy": { + "description": "The resource policy of your function", + "type": "object" + }, "ReservedConcurrentExecutions": { "description": "The number of simultaneous executions to reserve for the function.", "minimum": 0, @@ -614,6 +618,7 @@ "/properties/Code/S3Bucket", "/properties/Code/S3Key", "/properties/Code/S3ObjectVersion", - "/properties/Code/ZipFile" + "/properties/Code/ZipFile", + "/properties/Policy" ] } diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-opensearchservice-domain.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-opensearchservice-domain.json new file mode 100644 index 0000000000..43112af1b9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-opensearchservice-domain.json @@ -0,0 +1,517 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/EncryptionAtRestOptions/Enabled", + "/properties/EncryptionAtRestOptions/KmsKeyId", + "/properties/AdvancedSecurityOptions/Enabled" + ], + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/SAMLOptions" + } + }, + "type": "object" + }, + "ClusterConfig": { + "additionalProperties": false, + "properties": { + "DedicatedMasterCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "MultiAZWithStandbyEnabled": { + "type": "boolean" + }, + "WarmCount": { + "type": "integer" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "maxLength": 1048576, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MetadataContent", + "EntityId" + ], + "type": "object" + }, + "LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "OffPeakWindow": { + "additionalProperties": false, + "properties": { + "WindowStartTime": { + "$ref": "#/definitions/WindowStartTime" + } + }, + "type": "object" + }, + "OffPeakWindowOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OffPeakWindow": { + "$ref": "#/definitions/OffPeakWindow" + } + }, + "type": "object" + }, + "SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "integer" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + }, + "type": "object" + }, + "SoftwareUpdateOptions": { + "additionalProperties": false, + "properties": { + "AutoSoftwareUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "description": "The value of the tag.", + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Value": { + "description": "The key of the tag.", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "WindowStartTime": { + "additionalProperties": false, + "properties": { + "Hours": { + "maximum": 23, + "minimum": 0, + "type": "integer" + }, + "Minutes": { + "maximum": 59, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "An example resource schema demonstrating some basic constructs and validation rules.", + "handlers": { + "create": { + "permissions": [ + "es:CreateDomain", + "es:DescribeDomain", + "es:AddTags", + "es:ListTags" + ] + }, + "delete": { + "permissions": [ + "es:DeleteDomain", + "es:DescribeDomain" + ] + }, + "read": { + "permissions": [ + "es:DescribeDomain", + "es:ListTags" + ] + }, + "update": { + "permissions": [ + "es:UpdateDomain", + "es:UpgradeDomain", + "es:DescribeDomain", + "es:AddTags", + "es:RemoveTags", + "es:ListTags", + "es:DescribeDomainChangeProgress" + ], + "timeoutInMinutes": 780 + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "AccessPolicies": { + "type": "object" + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AdvancedSecurityOptionsInput" + }, + "Arn": { + "type": "string" + }, + "ClusterConfig": { + "$ref": "#/definitions/ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/CognitoOptions" + }, + "DomainArn": { + "type": "string" + }, + "DomainEndpoint": { + "type": "string" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/DomainEndpointOptions" + }, + "DomainEndpoints": { + "additionalProperties": false, + "patternProperties": { + "^.*$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/NodeToNodeEncryptionOptions" + }, + "OffPeakWindowOptions": { + "$ref": "#/definitions/OffPeakWindowOptions" + }, + "ServiceSoftwareOptions": { + "$ref": "#/definitions/ServiceSoftwareOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/SnapshotOptions" + }, + "SoftwareUpdateOptions": { + "$ref": "#/definitions/SoftwareUpdateOptions" + }, + "Tags": { + "description": "An arbitrary set of tags (key-value pairs) for this Domain.", + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VPCOptions": { + "$ref": "#/definitions/VPCOptions" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/DomainArn", + "/properties/DomainEndpoint", + "/properties/DomainEndpoints", + "/properties/ServiceSoftwareOptions", + "/properties/AdvancedSecurityOptions/AnonymousAuthDisableDate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::OpenSearchService::Domain", + "writeOnlyProperties": [ + "/properties/AdvancedSecurityOptions/MasterUserOptions", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterUserName", + "/properties/AdvancedSecurityOptions/SAMLOptions/MasterBackendRole" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-rds-dbcluster.json new file mode 100644 index 0000000000..9a18b7d8e4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-rds-dbcluster.json @@ -0,0 +1,545 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbcluster/serverless_exclusive" + ], + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "description": "Describes an AWS Identity and Access Management (IAM) role that is associated with a DB cluster.", + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. For the list of supported feature names, see DBEngineVersion in the Amazon RDS API Reference.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB cluster.", + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The connection endpoint for the DB cluster.", + "type": "string" + }, + "Port": { + "description": "The port number that will accept connections on this DB cluster.", + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS key identifier that is used to encrypt the secret.", + "type": "string" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the secret.", + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The reader endpoint for the DB cluster.", + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "description": "The ScalingConfiguration property type specifies the scaling configuration of an Aurora Serverless DB cluster.", + "properties": { + "AutoPause": { + "description": "A value that indicates whether to allow or disallow automatic pause for an Aurora DB cluster in serverless DB engine mode. A DB cluster can be paused only when it's idle (it has no connections).", + "type": "boolean" + }, + "MaxCapacity": { + "description": "The maximum capacity for an Aurora DB cluster in serverless DB engine mode.\nFor Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.\nFor Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.\nThe maximum capacity must be greater than or equal to the minimum capacity.", + "type": "integer" + }, + "MinCapacity": { + "description": "The minimum capacity for an Aurora DB cluster in serverless DB engine mode.\nFor Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.\nFor Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.\nThe minimum capacity must be less than or equal to the maximum capacity.", + "type": "integer" + }, + "SecondsBeforeTimeout": { + "description": "The amount of time, in seconds, that Aurora Serverless v1 tries to find a scaling point to perform seamless scaling before enforcing the timeout action.\nThe default is 300.", + "type": "integer" + }, + "SecondsUntilAutoPause": { + "description": "The time, in seconds, before an Aurora DB cluster in serverless mode is paused.", + "type": "integer" + }, + "TimeoutAction": { + "description": "The action to take when the timeout is reached, either ForceApplyCapacityChange or RollbackCapacityChange.\nForceApplyCapacityChange sets the capacity to the specified value as soon as possible.\nRollbackCapacityChange, the default, ignores the capacity change if a scaling point isn't found in the timeout period.\n\nFor more information, see Autoscaling for Aurora Serverless v1 in the Amazon Aurora User Guide.", + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "description": "Contains the scaling configuration of an Aurora Serverless v2 DB cluster.", + "properties": { + "MaxCapacity": { + "description": "The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 40, 40.5, 41, and so on. The largest value that you can use is 128.", + "maximum": 128, + "minimum": 0.5, + "type": "number" + }, + "MinCapacity": { + "description": "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5.", + "maximum": 128, + "minimum": 0.5, + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SnapshotIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false + } + }, + "SourceDBClusterIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "description": "The AWS::RDS::DBCluster resource creates an Amazon Aurora DB cluster.", + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeEvents", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "description": "The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.", + "type": "integer" + }, + "AssociatedRoles": { + "description": "Provides a list of the AWS Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other AWS services on your behalf.", + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "description": "A value that indicates whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.", + "type": "boolean" + }, + "AvailabilityZones": { + "awsType": "AvailabilityZones", + "description": "A list of Availability Zones (AZs) where instances in the DB cluster can be created. For information on AWS Regions and Availability Zones, see Choosing the Regions and Availability Zones in the Amazon Aurora User Guide.", + "items": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "default": 0, + "description": "The target backtrack window, in seconds. To disable backtracking, set this value to 0.", + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "description": "The number of days for which automated backups are retained.", + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them.", + "type": "boolean" + }, + "DBClusterArn": { + "description": "The Amazon Resource Name (ARN) for the DB cluster.", + "type": "string" + }, + "DBClusterIdentifier": { + "description": "The DB cluster identifier. This parameter is stored as a lowercase string.", + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "description": "The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6g.xlarge.", + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "description": "The name of the DB cluster parameter group to associate with this DB cluster.", + "type": "string" + }, + "DBClusterResourceId": { + "description": "The AWS Region-unique, immutable identifier for the DB cluster.", + "type": "string" + }, + "DBInstanceParameterGroupName": { + "description": "The name of the DB parameter group to apply to all instances of the DB cluster.", + "type": "string" + }, + "DBSubnetGroupName": { + "description": "A DB subnet group that you want to associate with this DB cluster.", + "type": "string" + }, + "DBSystemId": { + "description": "Reserved for future use.", + "type": "string" + }, + "DatabaseName": { + "description": "The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see Naming Constraints in the Amazon RDS User Guide.", + "type": "string" + }, + "DeletionProtection": { + "description": "A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.", + "type": "boolean" + }, + "Domain": { + "description": "The Active Directory directory ID to create the DB cluster in.", + "type": "string" + }, + "DomainIAMRoleName": { + "description": "Specify the name of the IAM role to be used when making API calls to the Directory Service.", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "description": "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "description": "Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database.", + "type": "boolean" + }, + "EnableHttpEndpoint": { + "description": "A value that indicates whether to enable the HTTP endpoint for an Aurora Serverless DB cluster. By default, the HTTP endpoint is disabled.", + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "description": "The name of the database engine to be used for this DB cluster. Valid Values: aurora (for MySQL 5.6-compatible Aurora), aurora-mysql (for MySQL 5.7-compatible Aurora), and aurora-postgresql", + "type": "string" + }, + "EngineMode": { + "description": "The DB engine mode of the DB cluster, either provisioned, serverless, parallelquery, global, or multimaster.", + "type": "string" + }, + "EngineVersion": { + "description": "The version number of the database engine to use.", + "type": "string" + }, + "GlobalClusterIdentifier": { + "description": "If you are configuring an Aurora global database cluster and want your Aurora DB cluster to be a secondary member in the global database cluster, specify the global cluster ID of the global database cluster. To define the primary database cluster of the global cluster, use the AWS::RDS::GlobalCluster resource.\n\nIf you aren't configuring a global database cluster, don't specify this property.", + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "description": "The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.", + "type": "integer" + }, + "KmsKeyId": { + "description": "The Amazon Resource Name (ARN) of the AWS Key Management Service master key that is used to encrypt the database instances in the DB cluster, such as arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. If you enable the StorageEncrypted property but don't specify this property, the default master key is used. If you specify this property, you must set the StorageEncrypted property to true.", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "A value that indicates whether to manage the master user password with AWS Secrets Manager.", + "type": "boolean" + }, + "MasterUserPassword": { + "description": "The master password for the DB instance.", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret", + "description": "Contains the secret managed by RDS in AWS Secrets Manager for the master user password." + }, + "MasterUsername": { + "description": "The name of the master user for the DB cluster. You must specify MasterUsername, unless you specify SnapshotIdentifier. In that case, don't specify MasterUsername.", + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify 0. The default is 0.", + "type": "integer" + }, + "MonitoringRoleArn": { + "description": "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.", + "type": "string" + }, + "NetworkType": { + "description": "The network type of the DB cluster.", + "type": "string" + }, + "PerformanceInsightsEnabled": { + "description": "A value that indicates whether to turn on Performance Insights for the DB cluster.", + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "description": "The Amazon Web Services KMS key identifier for encryption of Performance Insights data.", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "description": "The amount of time, in days, to retain Performance Insights data.", + "type": "integer" + }, + "Port": { + "description": "The port number on which the instances in the DB cluster accept connections. Default: 3306 if engine is set as aurora or 5432 if set to aurora-postgresql.", + "type": "integer" + }, + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter. The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "description": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.", + "type": "string" + }, + "PubliclyAccessible": { + "description": "A value that indicates whether the DB cluster is publicly accessible.", + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "description": "The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a Read Replica.", + "type": "string" + }, + "RestoreToTime": { + "description": "The date and time to restore the DB cluster to. Value must be a time in Universal Coordinated Time (UTC) format. An example: 2015-03-07T23:45:00Z", + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "description": "The type of restore to be performed. You can specify one of the following values:\nfull-copy - The new DB cluster is restored as a full copy of the source DB cluster.\ncopy-on-write - The new DB cluster is restored as a clone of the source DB cluster.", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration", + "description": "The ScalingConfiguration property type specifies the scaling configuration of an Aurora Serverless DB cluster." + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration", + "description": "Contains the scaling configuration of an Aurora Serverless v2 DB cluster." + }, + "SnapshotIdentifier": { + "description": "The identifier for the DB snapshot or DB cluster snapshot to restore from.\nYou can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot. However, you can use only the ARN to specify a DB snapshot.\nAfter you restore a DB cluster with a SnapshotIdentifier property, you must specify the same SnapshotIdentifier property for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed. However, if you don't specify the SnapshotIdentifier property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, the DB cluster is restored from the specified SnapshotIdentifier property, and the original DB cluster is deleted.", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "description": "The identifier of the source DB cluster from which to restore.", + "type": "string" + }, + "SourceRegion": { + "description": "The AWS Region which contains the source DB cluster when replicating a DB cluster. For example, us-east-1.", + "type": "string" + }, + "StorageEncrypted": { + "description": "Indicates whether the DB instance is encrypted.\nIf you specify the DBClusterIdentifier, SnapshotIdentifier, or SourceDBInstanceIdentifier property, don't specify this property. The value is inherited from the cluster, snapshot, or source DB instance.", + "type": "boolean" + }, + "StorageType": { + "description": "Specifies the storage type to be associated with the DB cluster.", + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "description": "A value that indicates whether to restore the DB cluster to the latest restorable backup time. By default, the DB cluster is not restored to the latest restorable backup time.", + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "description": "A list of EC2 VPC security groups to associate with this DB cluster.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : false", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "typeName": "AWS::RDS::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/MasterUserPassword", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-rds-dbinstance.json new file mode 100644 index 0000000000..4c2f423ae2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-rds-dbinstance.json @@ -0,0 +1,697 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbinstance/aurora_exclusive" + ], + "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": { + "description": "The CA identifier of the CA certificate used for the DB instance's server certificate.", + "type": "string" + }, + "ValidTill": { + "description": "The expiration date of the DB instance\u2019s server certificate.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "DBInstanceRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. IAM roles that are associated with a DB instance grant permission for the DB instance to access other AWS services on your behalf.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB instance.", + "type": "string" + } + }, + "required": [ + "FeatureName", + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "Specifies the DNS address of the DB instance.", + "type": "string" + }, + "HostedZoneId": { + "description": "Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.", + "type": "string" + }, + "Port": { + "description": "Specifies the port that the database engine is listening on.", + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS key identifier that is used to encrypt the secret.", + "type": "string" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the secret.", + "type": "string" + } + }, + "type": "object" + }, + "ProcessorFeature": { + "additionalProperties": false, + "properties": { + "Name": { + "description": "The name of the processor feature. Valid names are coreCount and threadsPerCore.", + "enum": [ + "coreCount", + "threadsPerCore" + ], + "type": "string" + }, + "Value": { + "description": "The value of a processor feature name.", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SourceDBInstanceIdentifier": { + "properties": { + "CharacterSetName": false, + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "deprecatedProperties": [ + "/properties/TdeCredentialArn", + "/properties/TdeCredentialPassword" + ], + "description": "The AWS::RDS::DBInstance resource creates an Amazon RDS DB instance.", + "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: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": { + "description": "The amount of storage (in gigabytes) to be initially allocated for the database instance.", + "pattern": "^[0-9]*$", + "type": "string" + }, + "AllowMajorVersionUpgrade": { + "description": "A value that indicates whether major version upgrades are allowed. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible.", + "type": "boolean" + }, + "AssociatedRoles": { + "description": "The AWS Identity and Access Management (IAM) roles associated with the DB instance.", + "items": { + "$ref": "#/definitions/DBInstanceRole" + }, + "type": "array" + }, + "AutoMinorVersionUpgrade": { + "description": "A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are applied automatically.", + "type": "boolean" + }, + "AutomaticBackupReplicationRegion": { + "description": "Enables replication of automated backups to a different Amazon Web Services Region.", + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "description": "The Availability Zone (AZ) where the database will be created. For information on AWS Regions and Availability Zones.", + "type": "string" + }, + "BackupRetentionPeriod": { + "default": 1, + "description": "The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.", + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CACertificateIdentifier": { + "description": "The identifier of the CA certificate for this DB instance.", + "type": "string" + }, + "CertificateDetails": { + "$ref": "#/definitions/CertificateDetails", + "description": "Returns the details of the DB instance's server certificate." + }, + "CertificateRotationRestart": { + "description": "A value that indicates whether the DB instance is restarted when you rotate your SSL/TLS certificate.\nBy default, the DB instance is restarted when you rotate your SSL/TLS certificate. The certificate is not updated until the DB instance is restarted.\nIf you are using SSL/TLS to connect to the DB instance, follow the appropriate instructions for your DB engine to rotate your SSL/TLS certificate\nThis setting doesn't apply to RDS Custom.", + "type": "boolean" + }, + "CharacterSetName": { + "description": "For supported engines, indicates that the DB instance should be associated with the specified character set.", + "type": "string" + }, + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied.", + "type": "boolean" + }, + "CustomIAMInstanceProfile": { + "description": "The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The instance profile must meet the following requirements:\n * The profile must exist in your account.\n * The profile must have an IAM role that Amazon EC2 has permissions to assume.\n * The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom .\nFor the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide .\n\nThis setting is required for RDS Custom.", + "type": "string" + }, + "DBClusterIdentifier": { + "description": "The identifier of the DB cluster that the instance will belong to.", + "type": "string" + }, + "DBClusterSnapshotIdentifier": { + "description": "The identifier for the RDS for MySQL Multi-AZ DB cluster snapshot to restore from. For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide .\n\nConstraints:\n * Must match the identifier of an existing Multi-AZ DB cluster snapshot.\n * Can't be specified when DBSnapshotIdentifier is specified.\n * Must be specified when DBSnapshotIdentifier isn't specified.\n * If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the DBClusterSnapshotIdentifier must be the ARN of the shared snapshot.\n * Can't be the identifier of an Aurora DB cluster snapshot.\n * Can't be the identifier of an RDS for PostgreSQL Multi-AZ DB cluster snapshot.", + "type": "string" + }, + "DBInstanceArn": { + "description": "The Amazon Resource Name (ARN) for the DB instance.", + "type": "string" + }, + "DBInstanceClass": { + "cfnRegionSchema": "aws_rds_dbinstance/dbinstanceclass_enum", + "description": "The compute and memory capacity of the DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines.", + "type": "string" + }, + "DBInstanceIdentifier": { + "description": "A name for the DB instance. If you specify a name, AWS CloudFormation converts it to lowercase. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the DB instance.", + "maxLength": 63, + "minLength": 1, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBName": { + "description": "The meaning of this parameter differs according to the database engine you use.", + "type": "string" + }, + "DBParameterGroupName": { + "description": "The name of an existing DB parameter group or a reference to an AWS::RDS::DBParameterGroup resource created in the template.", + "type": "string" + }, + "DBSecurityGroups": { + "description": "A list of the DB security groups to assign to the DB instance. The list can include both the name of existing DB security groups or references to AWS::RDS::DBSecurityGroup resources created in the template.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "DBSnapshotIdentifier": { + "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.", + "type": "string" + }, + "DBSubnetGroupName": { + "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC.", + "type": "string" + }, + "DBSystemId": { + "description": "The Oracle system ID (Oracle SID) for a container database (CDB). The Oracle SID is also the name of the CDB. This setting is valid for RDS Custom only.", + "type": "string" + }, + "DbiResourceId": { + "description": "The AWS Region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB instance is accessed.", + "type": "string" + }, + "DedicatedLogVolume": { + "description": "Indicates whether the DB instance has a dedicated log volume (DLV) enabled.", + "type": "boolean" + }, + "DeleteAutomatedBackups": { + "description": "A value that indicates whether to remove automated backups immediately after the DB instance is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB instance is deleted.", + "type": "boolean" + }, + "DeletionProtection": { + "description": "A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.", + "type": "boolean" + }, + "Domain": { + "description": "The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain.", + "type": "string" + }, + "DomainAuthSecretArn": { + "description": "The ARN for the Secrets Manager secret with the credentials for the user joining the domain.", + "type": "string" + }, + "DomainDnsIps": { + "description": "The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers.", + "items": { + "type": "string" + }, + "type": "array" + }, + "DomainFqdn": { + "description": "The fully qualified domain name (FQDN) of an Active Directory domain.", + "type": "string" + }, + "DomainIAMRoleName": { + "description": "Specify the name of the IAM role to be used when making API calls to the Directory Service.", + "type": "string" + }, + "DomainOu": { + "description": "The Active Directory organizational unit for your DB instance to join.", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "description": "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used.", + "items": { + "type": "string" + }, + "type": "array" + }, + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.", + "type": "boolean" + }, + "EnablePerformanceInsights": { + "description": "A value that indicates whether to enable Performance Insights for the DB instance.", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint", + "description": "Specifies the connection endpoint." + }, + "Engine": { + "description": "The name of the database engine that you want to use for this DB instance.", + "type": "string" + }, + "EngineVersion": { + "description": "The version number of the database engine to use.", + "type": "string" + }, + "Iops": { + "description": "The number of I/O operations per second (IOPS) that the database provisions.", + "type": "integer" + }, + "KmsKeyId": { + "description": "The ARN of the AWS Key Management Service (AWS KMS) master key that's used to encrypt the DB instance.", + "type": "string" + }, + "LicenseModel": { + "description": "License model information for this DB instance.", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "A value that indicates whether to manage the master user password with AWS Secrets Manager.", + "type": "boolean" + }, + "MasterUserPassword": { + "description": "The password for the master user.", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret", + "description": "Contains the secret managed by RDS in AWS Secrets Manager for the master user password." + }, + "MasterUsername": { + "description": "The master user name for the DB instance.", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", + "type": "string" + }, + "MaxAllocatedStorage": { + "description": "The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.", + "type": "integer" + }, + "MonitoringInterval": { + "default": 0, + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0.", + "type": "integer" + }, + "MonitoringRoleArn": { + "description": "The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs.", + "type": "string" + }, + "MultiAZ": { + "description": "Specifies whether the database instance is a multiple Availability Zone deployment.", + "type": "boolean" + }, + "NcharCharacterSetName": { + "description": "The name of the NCHAR character set for the Oracle DB instance. This parameter doesn't apply to RDS Custom.", + "type": "string" + }, + "NetworkType": { + "description": "The network type of the DB cluster.", + "type": "string" + }, + "OptionGroupName": { + "description": "Indicates that the DB instance should be associated with the specified option group.", + "type": "string" + }, + "PerformanceInsightsKMSKeyId": { + "description": "The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "description": "The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).", + "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": { + "description": "The port number on which the database accepts connections.", + "pattern": "^\\d*$", + "type": "string" + }, + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter.", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "description": "he weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).", + "type": "string" + }, + "ProcessorFeatures": { + "description": "The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.", + "items": { + "$ref": "#/definitions/ProcessorFeature" + }, + "type": "array" + }, + "PromotionTier": { + "default": 1, + "description": "A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance.", + "maximum": 15, + "minimum": 0, + "type": "integer" + }, + "PubliclyAccessible": { + "description": "Indicates whether the DB instance is an internet-facing instance. If you specify true, AWS CloudFormation creates an instance with a publicly resolvable DNS name, which resolves to a public IP address. If you specify false, AWS CloudFormation creates an internal instance with a DNS name that resolves to a private IP address.", + "type": "boolean" + }, + "ReplicaMode": { + "description": "The open mode of an Oracle read replica. The default is open-read-only.", + "type": "string" + }, + "RestoreTime": { + "description": "The date and time to restore from.", + "format": "date-time", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "description": "The identifier of the Multi-AZ DB cluster that will act as the source for the read replica. Each DB cluster can have up to 15 read replicas.", + "type": "string" + }, + "SourceDBInstanceAutomatedBackupsArn": { + "description": "The Amazon Resource Name (ARN) of the replicated automated backups from which to restore.", + "type": "string" + }, + "SourceDBInstanceIdentifier": { + "description": "If you want to create a Read Replica DB instance, specify the ID of the source DB instance. Each DB instance can have a limited number of Read Replicas.", + "type": "string" + }, + "SourceDbiResourceId": { + "description": "The resource ID of the source DB instance from which to restore.", + "type": "string" + }, + "SourceRegion": { + "description": "The ID of the region that contains the source DB instance for the Read Replica.", + "type": "string" + }, + "StorageEncrypted": { + "description": "A value that indicates whether the DB instance is encrypted. By default, it isn't encrypted.", + "type": "boolean" + }, + "StorageThroughput": { + "description": "Specifies the storage throughput for the DB instance.", + "type": "integer" + }, + "StorageType": { + "description": "Specifies the storage type to be associated with the DB instance.", + "type": "string" + }, + "Tags": { + "description": "Tags to assign to the DB instance.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TdeCredentialArn": { + "description": "The ARN from the key store with which to associate the instance for TDE encryption.", + "type": "string" + }, + "TdeCredentialPassword": { + "description": "The password for the given ARN from the key store in order to access the device.", + "type": "string" + }, + "Timezone": { + "description": "The time zone of the DB instance. The time zone parameter is currently supported only by Microsoft SQL Server.", + "type": "string" + }, + "UseDefaultProcessorFeatures": { + "description": "A value that indicates whether the DB instance class of the DB instance uses its default processor features.", + "type": "boolean" + }, + "UseLatestRestorableTime": { + "description": "A value that indicates whether the DB instance is restored from the latest backup time. By default, the DB instance isn't restored from the latest backup time.", + "type": "boolean" + }, + "VPCSecurityGroups": { + "description": "A list of the VPC security group IDs to assign to the DB instance. The list can include both the physical IDs of existing VPC security groups and references to AWS::EC2::SecurityGroup resources created in the template.", + "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/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/us_gov_west_1/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-sagemaker-app.json new file mode 100644 index 0000000000..da6e3f4330 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-sagemaker-app.json @@ -0,0 +1,216 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/Tags", + "/properties/ResourceSpec" + ], + "definitions": { + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "description": "The instance type that the image version runs on.", + "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" + ], + "type": "string" + }, + "SageMakerImageArn": { + "description": "The ARN of the SageMaker image that the image version belongs to.", + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "description": "The ARN of the image version created on the instance.", + "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" + } + }, + "description": "Resource Type definition for AWS::SageMaker::App", + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:DescribeApp" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListApps" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeApp" + ] + } + }, + "primaryIdentifier": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName" + ], + "properties": { + "AppArn": { + "description": "The Amazon Resource Name (ARN) of the app.", + "maxLength": 256, + "minLength": 1, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app/.*", + "type": "string" + }, + "AppName": { + "description": "The name of the app.", + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "AppType": { + "description": "The type of app.", + "enum": [ + "JupyterServer", + "KernelGateway", + "RStudioServerPro", + "RSessionGateway", + "Canvas" + ], + "type": "string" + }, + "DomainId": { + "description": "The domain ID.", + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "ResourceSpec": { + "$ref": "#/definitions/ResourceSpec", + "description": "The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance." + }, + "Tags": { + "description": "A list of tags to apply to the app.", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileName": { + "description": "The user profile name.", + "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/us_gov_west_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-sagemaker-domain.json new file mode 100644 index 0000000000..1948e2768f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-sagemaker-domain.json @@ -0,0 +1,575 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AppNetworkAccessType", + "/properties/AuthMode", + "/properties/DomainName", + "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", + "/properties/KmsKeyId", + "/properties/SubnetIds", + "/properties/VpcId", + "/properties/Tags" + ], + "definitions": { + "CustomImage": { + "additionalProperties": false, + "description": "A custom SageMaker image.", + "properties": { + "AppImageConfigName": { + "description": "The Name of the AppImageConfig.", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "description": "The name of the CustomImage. Must be unique to your account.", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "description": "The version number of the CustomImage.", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "DefaultSpaceSettings": { + "additionalProperties": false, + "description": "A collection of settings that apply to spaces of Amazon SageMaker Studio. These settings are specified when the Create/Update Domain API is called.", + "properties": { + "ExecutionRole": { + "description": "The execution role for the space.", + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings", + "description": "The Jupyter server's app settings." + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings", + "description": "The kernel gateway app settings." + }, + "SecurityGroups": { + "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + }, + "DomainSettings": { + "additionalProperties": false, + "description": "A collection of Domain settings.", + "properties": { + "RStudioServerProDomainSettings": { + "$ref": "#/definitions/RStudioServerProDomainSettings" + }, + "SecurityGroupIds": { + "description": "The security groups for the Amazon Virtual Private Cloud that the Domain uses for communication between Domain-level apps and user apps.", + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "description": "The JupyterServer app settings.", + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "description": "The kernel gateway app settings.", + "properties": { + "CustomImages": { + "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec", + "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app." + } + }, + "type": "object" + }, + "RSessionAppSettings": { + "additionalProperties": false, + "description": "A collection of settings that apply to an RSessionGateway app.", + "properties": { + "CustomImages": { + "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "description": "A collection of settings that configure user interaction with the RStudioServerPro app.", + "properties": { + "AccessStatus": { + "description": "Indicates whether the current user has access to the RStudioServerPro app.", + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "description": "The level of permissions that the user has within the RStudioServerPro app. This value defaults to User. The Admin value allows the user access to the RStudio Administrative Dashboard.", + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "RStudioServerProDomainSettings": { + "additionalProperties": false, + "description": "A collection of settings that update the current configuration for the RStudioServerPro Domain-level app.", + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "DomainExecutionRoleArn": { + "description": "The ARN of the execution role for the RStudioServerPro Domain-level app.", + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "RStudioConnectUrl": { + "description": "A URL pointing to an RStudio Connect server.", + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + }, + "RStudioPackageManagerUrl": { + "description": "A URL pointing to an RStudio Package Manager server.", + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + } + }, + "required": [ + "DomainExecutionRoleArn" + ], + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "description": "The instance type that the image version runs on.", + "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" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "description": "The Amazon Resource Name (ARN) of the SageMaker image that the image version belongs to.", + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "description": "The Amazon Resource Name (ARN) of the image version created on the instance.", + "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, + "description": "Specifies options when sharing an Amazon SageMaker Studio notebook. These settings are specified as part of DefaultUserSettings when the CreateDomain API is called, and as part of UserSettings when the CreateUserProfile API is called.", + "properties": { + "NotebookOutputOption": { + "description": "Whether to include the notebook cell output when sharing the notebook. The default is Disabled.", + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "description": "When NotebookOutputOption is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.", + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "description": "When NotebookOutputOption is Allowed, the Amazon S3 bucket used to store the shared notebook snapshots.", + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "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" + }, + "UserSettings": { + "additionalProperties": false, + "description": "A collection of settings that apply to users of Amazon SageMaker Studio. These settings are specified when the CreateUserProfile API is called, and as DefaultUserSettings when the CreateDomain API is called.", + "properties": { + "ExecutionRole": { + "description": "The execution role for the user.", + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings", + "description": "The Jupyter server's app settings." + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings", + "description": "The kernel gateway app settings." + }, + "RSessionAppSettings": { + "$ref": "#/definitions/RSessionAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings", + "description": "The sharing settings." + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::SageMaker::Domain", + "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": { + "description": "Specifies the VPC used for non-EFS traffic. The default value is PublicInternetOnly.", + "enum": [ + "PublicInternetOnly", + "VpcOnly" + ], + "type": "string" + }, + "AppSecurityGroupManagement": { + "description": "The entity that creates and manages the required security groups for inter-app communication in VPCOnly mode. Required when CreateDomain.AppNetworkAccessType is VPCOnly and DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn is provided.", + "enum": [ + "Service", + "Customer" + ], + "type": "string" + }, + "AuthMode": { + "description": "The mode of authentication that members use to access the domain.", + "enum": [ + "SSO", + "IAM" + ], + "type": "string" + }, + "DefaultSpaceSettings": { + "$ref": "#/definitions/DefaultSpaceSettings", + "description": "The default space settings." + }, + "DefaultUserSettings": { + "$ref": "#/definitions/UserSettings", + "description": "The default user settings." + }, + "DomainArn": { + "description": "The Amazon Resource Name (ARN) of the created domain.", + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", + "type": "string" + }, + "DomainId": { + "description": "The domain name.", + "maxLength": 63, + "pattern": "^d-(-*[a-z0-9])+", + "type": "string" + }, + "DomainName": { + "description": "A name for the domain.", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "DomainSettings": { + "$ref": "#/definitions/DomainSettings" + }, + "HomeEfsFileSystemId": { + "description": "The ID of the Amazon Elastic File System (EFS) managed by this Domain.", + "maxLength": 32, + "type": "string" + }, + "KmsKeyId": { + "description": "SageMaker uses AWS KMS to encrypt the EFS volume attached to the domain with an AWS managed customer master key (CMK) by default.", + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "SecurityGroupIdForDomainBoundary": { + "description": "The ID of the security group that authorizes traffic between the RSessionGateway apps and the RStudioServerPro app.", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "SingleSignOnManagedApplicationInstanceId": { + "description": "The SSO managed application instance ID.", + "maxLength": 256, + "type": "string" + }, + "SubnetIds": { + "description": "The VPC subnets that Studio uses for communication.", + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "description": "A list of tags to apply to the user profile.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "description": "The URL to the created domain.", + "maxLength": 1024, + "type": "string" + }, + "VpcId": { + "description": "The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/DomainArn", + "/properties/Url", + "/properties/DomainId", + "/properties/HomeEfsFileSystemId", + "/properties/SecurityGroupIdForDomainBoundary", + "/properties/SingleSignOnManagedApplicationInstanceId" + ], + "required": [ + "AuthMode", + "DefaultUserSettings", + "DomainName", + "SubnetIds", + "VpcId" + ], + "typeName": "AWS::SageMaker::Domain", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-secretsmanager-secret.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-secretsmanager-secret.json deleted file mode 100644 index 3f7d28e857..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-secretsmanager-secret.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "GenerateSecretString": { - "additionalProperties": false, - "properties": { - "ExcludeCharacters": { - "type": "string" - }, - "ExcludeLowercase": { - "type": "boolean" - }, - "ExcludeNumbers": { - "type": "boolean" - }, - "ExcludePunctuation": { - "type": "boolean" - }, - "ExcludeUppercase": { - "type": "boolean" - }, - "GenerateStringKey": { - "type": "string" - }, - "IncludeSpace": { - "type": "boolean" - }, - "PasswordLength": { - "type": "integer" - }, - "RequireEachIncludedType": { - "type": "boolean" - }, - "SecretStringTemplate": { - "type": "string" - } - }, - "type": "object" - }, - "ReplicaRegion": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "required": [ - "Region" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::SecretsManager::Secret", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Description": { - "type": "string" - }, - "GenerateSecretString": { - "$ref": "#/definitions/GenerateSecretString" - }, - "Id": { - "type": "string" - }, - "KmsKeyId": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "ReplicaRegions": { - "items": { - "$ref": "#/definitions/ReplicaRegion" - }, - "type": "array", - "uniqueItems": false - }, - "SecretString": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "typeName": "AWS::SecretsManager::Secret" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-securityhub-hub.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-securityhub-hub.json new file mode 100644 index 0000000000..b0401a5225 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-securityhub-hub.json @@ -0,0 +1,28 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::SecurityHub::Hub", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoEnableControls": { + "type": "boolean" + }, + "ControlFindingGenerator": { + "type": "string" + }, + "EnableDefaultStandards": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SecurityHub::Hub" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-servicecatalogappregistry-application.json new file mode 100644 index 0000000000..b04a7d7289 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-servicecatalogappregistry-application.json @@ -0,0 +1,100 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Name" + ] + ], + "additionalProperties": false, + "definitions": { + "Tags": { + "additionalProperties": false, + "maxProperties": 50, + "patternProperties": { + "^[a-zA-Z+-=._:/]+$": { + "maxLength": 256, + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application", + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-application.html", + "handlers": { + "create": { + "permissions": [ + "servicecatalog:CreateApplication", + "servicecatalog:TagResource", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "servicecatalog:DeleteApplication" + ] + }, + "list": { + "permissions": [ + "servicecatalog:ListApplications" + ] + }, + "read": { + "permissions": [ + "servicecatalog:GetApplication" + ] + }, + "update": { + "permissions": [ + "servicecatalog:GetApplication", + "servicecatalog:ListTagsForResource", + "servicecatalog:TagResource", + "servicecatalog:UntagResource", + "servicecatalog:UpdateApplication", + "iam:CreateServiceLinkedRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", + "type": "string" + }, + "Description": { + "description": "The description of the application. ", + "maxLength": 1024, + "type": "string" + }, + "Id": { + "pattern": "[a-z0-9]{26}", + "type": "string" + }, + "Name": { + "description": "The name of the application. ", + "maxLength": 256, + "minLength": 1, + "pattern": "\\w+", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ServiceCatalogAppRegistry::Application" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/__init__.py b/src/cfnlint/data/schemas/providers/us_west_1/__init__.py index f69860cf8f..da67c923e5 100644 --- a/src/cfnlint/data/schemas/providers/us_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_west_1/__init__.py @@ -5,6 +5,7 @@ "AWS::CDK::Metadata", "AWS::ApiGatewayV2::Integration", "AWS::ApiGatewayV2::ApiMapping", + "AWS::CE::AnomalySubscription", "AWS::Shield::DRTAccess", "AWS::SSO::Assignment", "AWS::Glue::Partition", @@ -231,6 +232,7 @@ "AWS::IoT::ThingType", "AWS::GuardDuty::Member", "AWS::CloudFormation::CustomResource", + "AWS::FIS::TargetAccountConfiguration", "AWS::RefactorSpaces::Route", "AWS::KinesisAnalytics::ApplicationOutput", "AWS::WAFv2::RuleGroup", @@ -457,6 +459,7 @@ "AWS::ServiceCatalog::AcceptedPortfolioShare", "AWS::Route53Resolver::FirewallRuleGroupAssociation", "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", "AWS::EC2::Subnet", "AWS::CloudTrail::ResourcePolicy", "AWS::S3ObjectLambda::AccessPoint", @@ -784,6 +787,7 @@ "AWS::SageMaker::MonitoringSchedule", "AWS::IAM::OIDCProvider", "AWS::LakeFormation::Tag", + "AWS::CE::AnomalyMonitor", "AWS::ServiceCatalogAppRegistry::ResourceAssociation", "AWS::EC2::VPNGateway", "AWS::CloudFormation::Stack", @@ -864,6 +868,7 @@ cached: List[str] = [ "aws-apigatewayv2-integration.json", "aws-apigatewayv2-apimapping.json", + "aws-ce-anomalysubscription.json", "aws-shield-drtaccess.json", "aws-sso-assignment.json", "aws-glue-partition.json", @@ -1008,6 +1013,7 @@ "aws-glue-devendpoint.json", "aws-sagemaker-modelpackage.json", "aws-wafregional-sizeconstraintset.json", + "aws-eventschemas-discoverer.json", "aws-networkmanager-connectpeer.json", "aws-elasticache-usergroup.json", "aws-iot-thinggroup.json", @@ -1033,7 +1039,6 @@ "aws-servicecatalog-cloudformationprovisionedproduct.json", "aws-route53-hostedzone.json", "aws-eks-podidentityassociation.json", - "aws-resourceexplorer2-index.json", "aws-glue-table.json", "aws-wafregional-webacl.json", "aws-logs-metricfilter.json", @@ -1041,7 +1046,6 @@ "aws-sns-topic.json", "aws-backup-backupselection.json", "aws-datasync-locationfsxlustre.json", - "aws-sagemaker-app.json", "aws-ec2-vpcgatewayattachment.json", "aws-cloudtrail-trail.json", "aws-ec2-vpnconnectionroute.json", @@ -1082,6 +1086,7 @@ "aws-iot-thingtype.json", "aws-guardduty-member.json", "aws-cloudformation-customresource.json", + "aws-fis-targetaccountconfiguration.json", "aws-refactorspaces-route.json", "aws-kinesisanalytics-applicationoutput.json", "aws-wafv2-rulegroup.json", @@ -1094,7 +1099,6 @@ "aws-amplifyuibuilder-component.json", "aws-sagemaker-inferenceexperiment.json", "aws-cloudformation-stackset.json", - "aws-ec2-route.json", "aws-fis-experimenttemplate.json", "aws-codecommit-repository.json", "aws-cloudformation-hookversion.json", @@ -1131,6 +1135,7 @@ "aws-fms-notificationchannel.json", "aws-msk-batchscramsecret.json", "aws-dms-certificate.json", + "aws-s3-bucket.json", "aws-guardduty-ipset.json", "aws-servicediscovery-httpnamespace.json", "aws-emr-securityconfiguration.json", @@ -1195,7 +1200,6 @@ "aws-datasync-locationnfs.json", "aws-amplify-domain.json", "aws-kinesisanalyticsv2-applicationoutput.json", - "aws-sagemaker-domain.json", "aws-greengrass-coredefinitionversion.json", "aws-certificatemanager-certificate.json", "aws-glue-schemaversionmetadata.json", @@ -1261,7 +1265,6 @@ "aws-codedeploy-deploymentconfig.json", "aws-networkmanager-globalnetwork.json", "aws-stepfunctions-statemachineversion.json", - "aws-servicecatalogappregistry-application.json", "aws-networkmanager-site.json", "aws-glue-database.json", "aws-neptune-dbcluster.json", @@ -1299,6 +1302,7 @@ "aws-servicecatalog-acceptedportfolioshare.json", "aws-route53resolver-firewallrulegroupassociation.json", "aws-route53resolver-resolverqueryloggingconfig.json", + "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-subnet.json", "aws-cloudtrail-resourcepolicy.json", "aws-s3objectlambda-accesspoint.json", @@ -1383,11 +1387,13 @@ "aws-elasticloadbalancingv2-targetgroup.json", "aws-applicationautoscaling-scalingpolicy.json", "aws-pipes-pipe.json", + "aws-emr-studiosessionmapping.json", "aws-cloudformation-macro.json", "aws-sagemaker-workteam.json", "aws-ssmincidents-responseplan.json", "aws-lambda-layerversionpermission.json", "aws-secretsmanager-secret.json", + "aws-route53resolver-resolverconfig.json", "aws-elasticache-user.json", "aws-sagemaker-image.json", "aws-logs-subscriptionfilter.json", @@ -1522,7 +1528,6 @@ "aws-glue-workflow.json", "aws-apigatewayv2-authorizer.json", "aws-iot-accountauditconfiguration.json", - "aws-sagemaker-userprofile.json", "aws-ec2-prefixlist.json", "aws-ec2-instance.json", "aws-networkmanager-device.json", @@ -1608,6 +1613,7 @@ "aws-sagemaker-monitoringschedule.json", "aws-iam-oidcprovider.json", "aws-lakeformation-tag.json", + "aws-ce-anomalymonitor.json", "aws-servicecatalogappregistry-resourceassociation.json", "aws-ec2-vpngateway.json", "aws-cloudformation-stack.json", @@ -1667,7 +1673,6 @@ "aws-chatbot-microsoftteamschannelconfiguration.json", "aws-rds-dbproxy.json", "aws-rds-dbparametergroup.json", - "aws-securityhub-hub.json", "aws-s3-accesspoint.json", "aws-greengrass-groupversion.json", "aws-ec2-trafficmirrorsession.json", diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-route.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-route.json new file mode 100644 index 0000000000..722dba73ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-route.json @@ -0,0 +1,129 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RouteTableId", + "/properties/DestinationCidrBlock", + "/properties/DestinationIpv6CidrBlock", + "/properties/DestinationPrefixListId" + ], + "description": "Resource Type definition for AWS::EC2::Route", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateRoute", + "ec2:DescribeRouteTables", + "ec2:DescribeNetworkInterfaces" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteRoute", + "ec2:DescribeRouteTables" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "RouteTableId": { + "$ref": "resource-schema.json#/properties/RouteTableId" + } + }, + "required": [ + "RouteTableId" + ] + }, + "permissions": [ + "ec2:DescribeRouteTables" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeRouteTables" + ] + }, + "update": { + "permissions": [ + "ec2:ReplaceRoute", + "ec2:DescribeRouteTables", + "ec2:DescribeNetworkInterfaces" + ] + } + }, + "primaryIdentifier": [ + "/properties/RouteTableId", + "/properties/CidrBlock" + ], + "properties": { + "CarrierGatewayId": { + "description": "The ID of the carrier gateway.", + "type": "string" + }, + "CidrBlock": { + "description": "The primary identifier of the resource generated by the service.", + "type": "string" + }, + "DestinationCidrBlock": { + "description": "The IPv4 CIDR block used for the destination match.", + "type": "string" + }, + "DestinationIpv6CidrBlock": { + "description": "The IPv6 CIDR block used for the destination match.", + "type": "string" + }, + "DestinationPrefixListId": { + "description": "The ID of managed prefix list, it's a set of one or more CIDR blocks.", + "type": "string" + }, + "EgressOnlyInternetGatewayId": { + "description": "The ID of the egress-only internet gateway.", + "type": "string" + }, + "GatewayId": { + "description": "The ID of an internet gateway or virtual private gateway attached to your VPC.", + "type": "string" + }, + "InstanceId": { + "description": "The ID of a NAT instance in your VPC.", + "type": "string" + }, + "LocalGatewayId": { + "description": "The ID of the local gateway.", + "type": "string" + }, + "NatGatewayId": { + "description": "The ID of a NAT gateway.", + "type": "string" + }, + "NetworkInterfaceId": { + "description": "The ID of the network interface.", + "type": "string" + }, + "RouteTableId": { + "description": "The ID of the route table. The routing table must be associated with the same VPC that the virtual private gateway is attached to.", + "type": "string" + }, + "TransitGatewayId": { + "description": "The ID of a transit gateway.", + "type": "string" + }, + "VpcEndpointId": { + "description": "The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.", + "type": "string" + }, + "VpcPeeringConnectionId": { + "description": "The ID of a VPC peering connection.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CidrBlock" + ], + "required": [ + "RouteTableId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2", + "tagging": { + "taggable": false + }, + "typeName": "AWS::EC2::Route" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-emr-studiosessionmapping.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-emr-studiosessionmapping.json deleted file mode 100644 index bfb5c89509..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-emr-studiosessionmapping.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StudioId", - "/properties/IdentityType", - "/properties/IdentityName" - ], - "definitions": { - "IamPolicyArn": { - "pattern": "^arn:aws(-(cn|us-gov))?:iam::([0-9]{12})?:policy\\/[^.]+$", - "type": "string" - } - }, - "description": "An example resource schema demonstrating some basic constructs and validation rules.", - "documentationUrl": "https://docs.aws.amazon.com/cli/latest/reference/emr/create-studio-session-mapping.html", - "handlers": { - "create": { - "permissions": [ - "elasticmapreduce:CreateStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:ListDirectoryAssociations", - "sso:GetProfile", - "sso:ListProfiles", - "sso:AssociateProfile" - ] - }, - "delete": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "elasticmapreduce:DeleteStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance", - "sso:DescribeInstance", - "sso:ListDirectoryAssociations", - "sso:GetProfile", - "sso:ListProfiles", - "sso:DisassociateProfile" - ] - }, - "list": { - "permissions": [ - "elasticmapreduce:ListStudioSessionMappings" - ] - }, - "read": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance", - "sso:DescribeInstance" - ] - }, - "update": { - "permissions": [ - "elasticmapreduce:GetStudioSessionMapping", - "elasticmapreduce:UpdateStudioSessionMapping", - "sso-directory:SearchUsers", - "sso-directory:SearchGroups", - "sso-directory:DescribeUser", - "sso-directory:DescribeGroup", - "sso:GetManagedApplicationInstance", - "sso:DescribeInstance" - ] - } - }, - "primaryIdentifier": [ - "/properties/StudioId", - "/properties/IdentityType", - "/properties/IdentityName" - ], - "properties": { - "IdentityName": { - "description": "The name of the user or group. For more information, see UserName and DisplayName in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId must be specified.", - "type": "string" - }, - "IdentityType": { - "description": "Specifies whether the identity to map to the Studio is a user or a group.", - "enum": [ - "USER", - "GROUP" - ], - "type": "string" - }, - "SessionPolicyArn": { - "$ref": "#/definitions/IamPolicyArn", - "description": "The Amazon Resource Name (ARN) for the session policy that will be applied to the user or group. Session policies refine Studio user permissions without the need to use multiple IAM user roles." - }, - "StudioId": { - "description": "The ID of the Amazon EMR Studio to which the user or group will be mapped.", - "maxLength": 256, - "minLength": 4, - "pattern": "^es-[0-9A-Z]+", - "type": "string" - } - }, - "required": [ - "StudioId", - "IdentityName", - "IdentityType", - "SessionPolicyArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::EMR::StudioSessionMapping" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-eventschemas-discoverer.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-eventschemas-discoverer.json deleted file mode 100644 index 791d433995..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-eventschemas-discoverer.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SourceArn" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EventSchemas::Discoverer", - "primaryIdentifier": [ - "/properties/DiscovererId" - ], - "properties": { - "CrossAccount": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DiscovererArn": { - "type": "string" - }, - "DiscovererId": { - "type": "string" - }, - "SourceArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/DiscovererId", - "/properties/DiscovererArn" - ], - "required": [ - "SourceArn" - ], - "typeName": "AWS::EventSchemas::Discoverer" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-resourceexplorer2-index.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-resourceexplorer2-index.json new file mode 100644 index 0000000000..7176b8b7ae --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-resourceexplorer2-index.json @@ -0,0 +1,101 @@ +{ + "additionalProperties": false, + "definitions": { + "IndexState": { + "enum": [ + "ACTIVE", + "CREATING", + "DELETING", + "DELETED", + "UPDATING" + ], + "type": "string" + }, + "IndexType": { + "enum": [ + "LOCAL", + "AGGREGATOR" + ], + "type": "string" + }, + "TagMap": { + "additionalProperties": false, + "patternProperties": { + ".+": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Definition of AWS::ResourceExplorer2::Index Resource Type", + "handlers": { + "create": { + "permissions": [ + "resource-explorer-2:CreateIndex", + "resource-explorer-2:GetIndex", + "resource-explorer-2:TagResource", + "resource-explorer-2:UpdateIndexType", + "resource-explorer-2:DeleteIndex" + ] + }, + "delete": { + "permissions": [ + "resource-explorer-2:DeleteIndex", + "resource-explorer-2:GetIndex", + "resource-explorer-2:UntagResource" + ] + }, + "list": { + "permissions": [ + "resource-explorer-2:ListIndexes" + ] + }, + "read": { + "permissions": [ + "resource-explorer-2:GetIndex" + ] + }, + "update": { + "permissions": [ + "resource-explorer-2:GetIndex", + "resource-explorer-2:UpdateIndexType", + "resource-explorer-2:TagResource", + "resource-explorer-2:UntagResource", + "resource-explorer-2:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "type": "string" + }, + "IndexState": { + "$ref": "#/definitions/IndexState" + }, + "Tags": { + "$ref": "#/definitions/TagMap" + }, + "Type": { + "$ref": "#/definitions/IndexType" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/IndexState" + ], + "required": [ + "Type" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ResourceExplorer2::Index" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-route53resolver-resolverconfig.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-route53resolver-resolverconfig.json deleted file mode 100644 index 33f4996fbd..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-route53resolver-resolverconfig.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ResourceId", - "/properties/AutodefinedReverseFlag" - ], - "description": "Resource schema for AWS::Route53Resolver::ResolverConfig.", - "handlers": { - "create": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "delete": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "list": { - "permissions": [ - "route53resolver:ListResolverConfigs" - ] - }, - "read": { - "permissions": [ - "route53resolver:GetResolverConfig" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AutodefinedReverse": { - "description": "ResolverAutodefinedReverseStatus, possible values are ENABLING, ENABLED, DISABLING AND DISABLED.", - "enum": [ - "ENABLING", - "ENABLED", - "DISABLING", - "DISABLED" - ], - "type": "string" - }, - "AutodefinedReverseFlag": { - "description": "Represents the desired status of AutodefinedReverse. The only supported value on creation is DISABLE. Deletion of this resource will return AutodefinedReverse to its default value (ENABLED).", - "enum": [ - "DISABLE" - ], - "type": "string" - }, - "Id": { - "description": "Id", - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "OwnerId": { - "description": "AccountId", - "maxLength": 32, - "minLength": 12, - "type": "string" - }, - "ResourceId": { - "description": "ResourceId", - "maxLength": 64, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/OwnerId", - "/properties/Id", - "/properties/AutodefinedReverse" - ], - "required": [ - "ResourceId", - "AutodefinedReverseFlag" - ], - "taggable": false, - "typeName": "AWS::Route53Resolver::ResolverConfig" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-s3-bucket.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-s3-bucket.json deleted file mode 100644 index 5f53f45913..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-s3-bucket.json +++ /dev/null @@ -1,1645 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/BucketName", - "/properties/ObjectLockEnabled" - ], - "definitions": { - "AbortIncompleteMultipartUpload": { - "additionalProperties": false, - "description": "Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload.", - "properties": { - "DaysAfterInitiation": { - "description": "Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload.", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "DaysAfterInitiation" - ], - "type": "object" - }, - "AccelerateConfiguration": { - "additionalProperties": false, - "properties": { - "AccelerationStatus": { - "description": "Configures the transfer acceleration state for an Amazon S3 bucket.", - "enum": [ - "Enabled", - "Suspended" - ], - "type": "string" - } - }, - "required": [ - "AccelerationStatus" - ], - "type": "object" - }, - "AccessControlTranslation": { - "additionalProperties": false, - "description": "Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS account that owns the source object.", - "properties": { - "Owner": { - "const": "Destination", - "type": "string" - } - }, - "required": [ - "Owner" - ], - "type": "object" - }, - "AnalyticsConfiguration": { - "additionalProperties": false, - "description": "Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.", - "properties": { - "Id": { - "description": "The ID that identifies the analytics configuration.", - "type": "string" - }, - "Prefix": { - "description": "The prefix that an object must have to be included in the analytics results.", - "type": "string" - }, - "StorageClassAnalysis": { - "$ref": "#/definitions/StorageClassAnalysis" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "StorageClassAnalysis", - "Id" - ], - "type": "object" - }, - "Arn": { - "description": "the Amazon Resource Name (ARN) of the specified bucket.", - "type": "string" - }, - "BucketEncryption": { - "additionalProperties": false, - "description": "Specifies default encryption for a bucket using server-side encryption with either Amazon S3-managed keys (SSE-S3) or AWS KMS-managed keys (SSE-KMS).", - "properties": { - "ServerSideEncryptionConfiguration": { - "description": "Specifies the default server-side-encryption configuration.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ServerSideEncryptionRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "ServerSideEncryptionConfiguration" - ], - "type": "object" - }, - "CorsConfiguration": { - "additionalProperties": false, - "properties": { - "CorsRules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/CorsRule", - "maxLength": 100 - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "CorsRules" - ], - "type": "object" - }, - "CorsRule": { - "additionalProperties": false, - "description": "A set of origins and methods (cross-origin access that you want to allow). You can add up to 100 rules to the configuration.", - "properties": { - "AllowedHeaders": { - "description": "Headers that are specified in the Access-Control-Request-Headers header.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AllowedMethods": { - "description": "An HTTP method that you allow the origin to execute.", - "insertionOrder": true, - "items": { - "enum": [ - "GET", - "PUT", - "HEAD", - "POST", - "DELETE" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AllowedOrigins": { - "description": "One or more origins you want customers to be able to access the bucket from.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "ExposedHeaders": { - "description": "One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object).", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Id": { - "description": "A unique identifier for this rule.", - "maxLength": 255, - "type": "string" - }, - "MaxAge": { - "description": "The time in seconds that your browser is to cache the preflight response for the specified resource.", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AllowedMethods", - "AllowedOrigins" - ], - "type": "object" - }, - "DataExport": { - "additionalProperties": false, - "description": "Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.", - "properties": { - "Destination": { - "$ref": "#/definitions/Destination" - }, - "OutputSchemaVersion": { - "const": "V_1", - "description": "The version of the output schema to use when exporting data.", - "type": "string" - } - }, - "required": [ - "Destination", - "OutputSchemaVersion" - ], - "type": "object" - }, - "DefaultRetention": { - "additionalProperties": false, - "description": "The default retention period that you want to apply to new objects placed in the specified bucket.", - "properties": { - "Days": { - "type": "integer" - }, - "Mode": { - "enum": [ - "COMPLIANCE", - "GOVERNANCE" - ], - "type": "string" - }, - "Years": { - "type": "integer" - } - }, - "type": "object" - }, - "DeleteMarkerReplication": { - "additionalProperties": false, - "properties": { - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "type": "object" - }, - "Destination": { - "additionalProperties": false, - "description": "Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC).", - "properties": { - "BucketAccountId": { - "description": "The account ID that owns the destination S3 bucket. ", - "type": "string" - }, - "BucketArn": { - "description": "The Amazon Resource Name (ARN) of the bucket to which data is exported.", - "type": "string" - }, - "Format": { - "description": "Specifies the file format used when exporting data to Amazon S3.", - "enum": [ - "CSV", - "ORC", - "Parquet" - ], - "type": "string" - }, - "Prefix": { - "description": "The prefix to use when exporting data. The prefix is prepended to all results.", - "type": "string" - } - }, - "required": [ - "BucketArn", - "Format" - ], - "type": "object" - }, - "EncryptionConfiguration": { - "additionalProperties": false, - "description": "Specifies encryption-related information for an Amazon S3 bucket that is a destination for replicated objects.", - "properties": { - "ReplicaKmsKeyID": { - "description": "Specifies the ID (Key ARN or Alias ARN) of the customer managed customer master key (CMK) stored in AWS Key Management Service (KMS) for the destination bucket.", - "type": "string" - } - }, - "required": [ - "ReplicaKmsKeyID" - ], - "type": "object" - }, - "EventBridgeConfiguration": { - "additionalProperties": false, - "description": "Describes the Amazon EventBridge notification configuration for an Amazon S3 bucket.", - "properties": { - "EventBridgeEnabled": { - "default": "true", - "description": "Specifies whether to send notifications to Amazon EventBridge when events occur in an Amazon S3 bucket.", - "type": "boolean" - } - }, - "required": [ - "EventBridgeEnabled" - ], - "type": "object" - }, - "FilterRule": { - "additionalProperties": false, - "description": "Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.", - "properties": { - "Name": { - "maxLength": 1024, - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Name" - ], - "type": "object" - }, - "IntelligentTieringConfiguration": { - "additionalProperties": false, - "properties": { - "Id": { - "description": "The ID used to identify the S3 Intelligent-Tiering configuration.", - "type": "string" - }, - "Prefix": { - "description": "An object key name prefix that identifies the subset of objects to which the rule applies.", - "type": "string" - }, - "Status": { - "description": "Specifies the status of the configuration.", - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - }, - "TagFilters": { - "description": "A container for a key-value pair.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Tierings": { - "description": "Specifies a list of S3 Intelligent-Tiering storage class tiers in the configuration. At least one tier must be defined in the list. At most, you can specify two tiers in the list, one for each available AccessTier: ARCHIVE_ACCESS and DEEP_ARCHIVE_ACCESS.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Tiering" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Id", - "Status", - "Tierings" - ], - "type": "object" - }, - "InventoryConfiguration": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/Destination" - }, - "Enabled": { - "description": "Specifies whether the inventory is enabled or disabled.", - "type": "boolean" - }, - "Id": { - "description": "The ID used to identify the inventory configuration.", - "type": "string" - }, - "IncludedObjectVersions": { - "description": "Object versions to include in the inventory list.", - "enum": [ - "All", - "Current" - ], - "type": "string" - }, - "OptionalFields": { - "description": "Contains the optional fields that are included in the inventory results.", - "insertionOrder": true, - "items": { - "enum": [ - "Size", - "LastModifiedDate", - "StorageClass", - "ETag", - "IsMultipartUploaded", - "ReplicationStatus", - "EncryptionStatus", - "ObjectLockRetainUntilDate", - "ObjectLockMode", - "ObjectLockLegalHoldStatus", - "IntelligentTieringAccessTier", - "BucketKeyStatus", - "ChecksumAlgorithm" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Prefix": { - "description": "The prefix that is prepended to all inventory results.", - "type": "string" - }, - "ScheduleFrequency": { - "description": "Specifies the schedule for generating inventory results.", - "enum": [ - "Daily", - "Weekly" - ], - "type": "string" - } - }, - "required": [ - "Destination", - "Enabled", - "Id", - "IncludedObjectVersions", - "ScheduleFrequency" - ], - "type": "object" - }, - "LambdaConfiguration": { - "additionalProperties": false, - "description": "Describes the AWS Lambda functions to invoke and the events for which to invoke them.", - "properties": { - "Event": { - "description": "The Amazon S3 bucket event for which to invoke the AWS Lambda function.", - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter", - "description": "The filtering rules that determine which objects invoke the AWS Lambda function." - }, - "Function": { - "description": "The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3 invokes when the specified event type occurs.", - "type": "string" - } - }, - "required": [ - "Function", - "Event" - ], - "type": "object" - }, - "LifecycleConfiguration": { - "additionalProperties": false, - "properties": { - "Rules": { - "description": "A lifecycle rule for individual objects in an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Rule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "DestinationBucketName": { - "description": "The name of an Amazon S3 bucket where Amazon S3 store server access log files. You can store log files in any bucket that you own. By default, logs are stored in the bucket where the LoggingConfiguration property is defined.", - "type": "string" - }, - "LogFilePrefix": { - "type": "string" - } - }, - "type": "object" - }, - "Metrics": { - "additionalProperties": false, - "properties": { - "EventThreshold": { - "$ref": "#/definitions/ReplicationTimeValue" - }, - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "MetricsConfiguration": { - "additionalProperties": false, - "properties": { - "AccessPointArn": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Prefix": { - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Id" - ], - "type": "object" - }, - "NoncurrentVersionExpiration": { - "additionalProperties": false, - "description": "Container for the expiration rule that describes when noncurrent objects are expired. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 expire noncurrent object versions at a specific period in the object's lifetime", - "properties": { - "NewerNoncurrentVersions": { - "description": "Specified the number of newer noncurrent and current versions that must exists before performing the associated action", - "type": "integer" - }, - "NoncurrentDays": { - "description": "Specified the number of days an object is noncurrent before Amazon S3 can perform the associated action", - "type": "integer" - } - }, - "required": [ - "NoncurrentDays" - ], - "type": "object" - }, - "NoncurrentVersionTransition": { - "additionalProperties": false, - "description": "Container for the transition rule that describes when noncurrent objects transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's lifetime.", - "properties": { - "NewerNoncurrentVersions": { - "description": "Specified the number of newer noncurrent and current versions that must exists before performing the associated action", - "type": "integer" - }, - "StorageClass": { - "description": "The class of storage used to store the object.", - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "Glacier", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "STANDARD_IA" - ], - "type": "string" - }, - "TransitionInDays": { - "description": "Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action.", - "type": "integer" - } - }, - "required": [ - "StorageClass", - "TransitionInDays" - ], - "type": "object" - }, - "NotificationConfiguration": { - "additionalProperties": false, - "description": "Describes the notification configuration for an Amazon S3 bucket.", - "properties": { - "EventBridgeConfiguration": { - "$ref": "#/definitions/EventBridgeConfiguration" - }, - "LambdaConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/LambdaConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "QueueConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/QueueConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "TopicConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TopicConfiguration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "NotificationFilter": { - "additionalProperties": false, - "description": "Specifies object key name filtering rules.", - "properties": { - "S3Key": { - "$ref": "#/definitions/S3KeyFilter" - } - }, - "required": [ - "S3Key" - ], - "type": "object" - }, - "ObjectLockConfiguration": { - "additionalProperties": false, - "properties": { - "ObjectLockEnabled": { - "const": "Enabled", - "type": "string" - }, - "Rule": { - "$ref": "#/definitions/ObjectLockRule" - } - }, - "type": "object" - }, - "ObjectLockRule": { - "additionalProperties": false, - "description": "The Object Lock rule in place for the specified object.", - "properties": { - "DefaultRetention": { - "$ref": "#/definitions/DefaultRetention" - } - }, - "type": "object" - }, - "OwnershipControls": { - "additionalProperties": false, - "properties": { - "Rules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/OwnershipControlsRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "OwnershipControlsRule": { - "additionalProperties": false, - "properties": { - "ObjectOwnership": { - "description": "Specifies an object ownership rule.", - "enum": [ - "ObjectWriter", - "BucketOwnerPreferred", - "BucketOwnerEnforced" - ], - "type": "string" - } - }, - "type": "object" - }, - "PublicAccessBlockConfiguration": { - "additionalProperties": false, - "description": "Configuration that defines how Amazon S3 handles public access.", - "properties": { - "BlockPublicAcls": { - "description": "Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this bucket. Setting this element to TRUE causes the following behavior:\n- PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public.\n - PUT Object calls fail if the request includes a public ACL.\nEnabling this setting doesn't affect existing policies or ACLs.", - "type": "boolean" - }, - "BlockPublicPolicy": { - "description": "Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to TRUE causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.\nEnabling this setting doesn't affect existing bucket policies.", - "type": "boolean" - }, - "IgnorePublicAcls": { - "description": "Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this element to TRUE causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket.\nEnabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.", - "type": "boolean" - }, - "RestrictPublicBuckets": { - "description": "Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to TRUE restricts access to this bucket to only AWS services and authorized users within this account if the bucket has a public policy.\nEnabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked.", - "type": "boolean" - } - }, - "type": "object" - }, - "QueueConfiguration": { - "additionalProperties": false, - "description": "The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages.", - "properties": { - "Event": { - "description": "The Amazon S3 bucket event about which you want to publish messages to Amazon SQS.", - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter", - "description": "The filtering rules that determine which objects trigger notifications." - }, - "Queue": { - "description": "The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type.", - "type": "string" - } - }, - "required": [ - "Event", - "Queue" - ], - "type": "object" - }, - "RedirectAllRequestsTo": { - "additionalProperties": false, - "dependencies": { - "RedirectAllRequestsTo": { - "properties": { - "ErrorDocument": false, - "IndexDocument": false, - "RoutingRules": false - } - } - }, - "description": "Specifies the redirect behavior of all requests to a website endpoint of an Amazon S3 bucket.", - "properties": { - "HostName": { - "description": "Name of the host where requests are redirected.", - "type": "string" - }, - "Protocol": { - "description": "Protocol to use when redirecting requests. The default is the protocol that is used in the original request.", - "enum": [ - "http", - "https" - ], - "type": "string" - } - }, - "required": [ - "HostName" - ], - "type": "object" - }, - "RedirectRule": { - "additionalProperties": false, - "description": "Specifies how requests are redirected. In the event of an error, you can specify a different error code to return.", - "properties": { - "HostName": { - "description": "The host name to use in the redirect request.", - "type": "string" - }, - "HttpRedirectCode": { - "description": "The HTTP redirect code to use on the response. Not required if one of the siblings is present.", - "type": "string" - }, - "Protocol": { - "description": "Protocol to use when redirecting requests. The default is the protocol that is used in the original request.", - "enum": [ - "http", - "https" - ], - "type": "string" - }, - "ReplaceKeyPrefixWith": { - "description": "The object key prefix to use in the redirect request.", - "type": "string" - }, - "ReplaceKeyWith": { - "description": "The specific object key to use in the redirect request.d", - "type": "string" - } - }, - "type": "object" - }, - "ReplicaModifications": { - "additionalProperties": false, - "properties": { - "Status": { - "description": "Specifies whether Amazon S3 replicates modifications on replicas.", - "enum": [ - "Enabled", - "Disabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "ReplicationConfiguration": { - "additionalProperties": false, - "description": "A container for replication rules. You can add up to 1,000 rules. The maximum size of a replication configuration is 2 MB.", - "properties": { - "Role": { - "awsType": "IamRoleArn", - "description": "The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that Amazon S3 assumes when replicating objects.", - "type": "string" - }, - "Rules": { - "description": "A container for one or more replication rules.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ReplicationRule", - "maxLength": 1000, - "minLength": 1 - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Role", - "Rules" - ], - "type": "object" - }, - "ReplicationDestination": { - "additionalProperties": false, - "description": "Specifies which Amazon S3 bucket to store replicated objects in and their storage class.", - "properties": { - "AccessControlTranslation": { - "$ref": "#/definitions/AccessControlTranslation" - }, - "Account": { - "type": "string" - }, - "Bucket": { - "type": "string" - }, - "EncryptionConfiguration": { - "$ref": "#/definitions/EncryptionConfiguration" - }, - "Metrics": { - "$ref": "#/definitions/Metrics" - }, - "ReplicationTime": { - "$ref": "#/definitions/ReplicationTime" - }, - "StorageClass": { - "description": "The storage class to use when replicating objects, such as S3 Standard or reduced redundancy.", - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "REDUCED_REDUNDANCY", - "STANDARD", - "STANDARD_IA" - ], - "type": "string" - } - }, - "required": [ - "Bucket" - ], - "type": "object" - }, - "ReplicationRule": { - "additionalProperties": false, - "description": "Specifies which Amazon S3 objects to replicate and where to store the replicas.", - "properties": { - "DeleteMarkerReplication": { - "$ref": "#/definitions/DeleteMarkerReplication" - }, - "Destination": { - "$ref": "#/definitions/ReplicationDestination" - }, - "Filter": { - "$ref": "#/definitions/ReplicationRuleFilter" - }, - "Id": { - "description": "A unique identifier for the rule.", - "maxLength": 255, - "type": "string" - }, - "Prefix": { - "description": "An object key name prefix that identifies the object or objects to which the rule applies.", - "maxLength": 1024, - "type": "string" - }, - "Priority": { - "type": "integer" - }, - "SourceSelectionCriteria": { - "$ref": "#/definitions/SourceSelectionCriteria" - }, - "Status": { - "description": "Specifies whether the rule is enabled.", - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Destination", - "Status" - ], - "type": "object" - }, - "ReplicationRuleAndOperator": { - "additionalProperties": false, - "properties": { - "Prefix": { - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ReplicationRuleFilter": { - "additionalProperties": false, - "properties": { - "And": { - "$ref": "#/definitions/ReplicationRuleAndOperator" - }, - "Prefix": { - "type": "string" - }, - "TagFilter": { - "$ref": "#/definitions/TagFilter" - } - }, - "type": "object" - }, - "ReplicationTime": { - "additionalProperties": false, - "properties": { - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - }, - "Time": { - "$ref": "#/definitions/ReplicationTimeValue" - } - }, - "required": [ - "Status", - "Time" - ], - "type": "object" - }, - "ReplicationTimeValue": { - "additionalProperties": false, - "properties": { - "Minutes": { - "type": "integer" - } - }, - "required": [ - "Minutes" - ], - "type": "object" - }, - "RoutingRule": { - "additionalProperties": false, - "description": "Specifies the redirect behavior and when a redirect is applied.", - "properties": { - "RedirectRule": { - "$ref": "#/definitions/RedirectRule", - "description": "Container for redirect information. You can redirect requests to another host, to another page, or with another protocol. In the event of an error, you can specify a different error code to return." - }, - "RoutingRuleCondition": { - "$ref": "#/definitions/RoutingRuleCondition" - } - }, - "required": [ - "RedirectRule" - ], - "type": "object" - }, - "RoutingRuleCondition": { - "additionalProperties": false, - "anyOf": [ - { - "required": [ - "HttpErrorCodeReturnedEquals" - ] - }, - { - "required": [ - "KeyPrefixEquals" - ] - } - ], - "description": "A container for describing a condition that must be met for the specified redirect to apply.You must specify at least one of HttpErrorCodeReturnedEquals and KeyPrefixEquals", - "properties": { - "HttpErrorCodeReturnedEquals": { - "description": "The HTTP error code when the redirect is applied. ", - "type": "string" - }, - "KeyPrefixEquals": { - "description": "The object key name prefix when the redirect is applied.", - "type": "string" - } - }, - "type": "object" - }, - "Rule": { - "additionalProperties": false, - "description": "You must specify at least one of the following properties: AbortIncompleteMultipartUpload, ExpirationDate, ExpirationInDays, NoncurrentVersionExpirationInDays, NoncurrentVersionTransition, NoncurrentVersionTransitions, Transition, or Transitions.", - "properties": { - "AbortIncompleteMultipartUpload": { - "$ref": "#/definitions/AbortIncompleteMultipartUpload" - }, - "ExpirationDate": { - "$ref": "#/definitions/iso8601UTC" - }, - "ExpirationInDays": { - "type": "integer" - }, - "ExpiredObjectDeleteMarker": { - "type": "boolean" - }, - "Id": { - "maxLength": 255, - "type": "string" - }, - "NoncurrentVersionExpiration": { - "$ref": "#/definitions/NoncurrentVersionExpiration" - }, - "NoncurrentVersionExpirationInDays": { - "type": "integer" - }, - "NoncurrentVersionTransition": { - "$ref": "#/definitions/NoncurrentVersionTransition" - }, - "NoncurrentVersionTransitions": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/NoncurrentVersionTransition" - }, - "type": "array", - "uniqueItems": true - }, - "ObjectSizeGreaterThan": { - "maxLength": 20, - "pattern": "[0-9]+", - "type": "string" - }, - "ObjectSizeLessThan": { - "maxLength": 20, - "pattern": "[0-9]+", - "type": "string" - }, - "Prefix": { - "type": "string" - }, - "Status": { - "enum": [ - "Enabled", - "Disabled" - ], - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Transition": { - "$ref": "#/definitions/Transition" - }, - "Transitions": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Transition" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "S3KeyFilter": { - "additionalProperties": false, - "description": "A container for object key name prefix and suffix filtering rules.", - "properties": { - "Rules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/FilterRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "ServerSideEncryptionByDefault": { - "additionalProperties": false, - "description": "Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied.", - "properties": { - "KMSMasterKeyID": { - "description": "\"KMSMasterKeyID\" can only be used when you set the value of SSEAlgorithm as aws:kms or aws:kms:dsse.", - "type": "string" - }, - "SSEAlgorithm": { - "enum": [ - "aws:kms", - "AES256", - "aws:kms:dsse" - ], - "type": "string" - } - }, - "required": [ - "SSEAlgorithm" - ], - "type": "object" - }, - "ServerSideEncryptionRule": { - "additionalProperties": false, - "description": "Specifies the default server-side encryption configuration.", - "properties": { - "BucketKeyEnabled": { - "description": "Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the BucketKeyEnabled element to true causes Amazon S3 to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled.", - "type": "boolean" - }, - "ServerSideEncryptionByDefault": { - "$ref": "#/definitions/ServerSideEncryptionByDefault" - } - }, - "type": "object" - }, - "SourceSelectionCriteria": { - "additionalProperties": false, - "description": "A container that describes additional filters for identifying the source objects that you want to replicate.", - "properties": { - "ReplicaModifications": { - "$ref": "#/definitions/ReplicaModifications", - "description": "A filter that you can specify for selection for modifications on replicas." - }, - "SseKmsEncryptedObjects": { - "$ref": "#/definitions/SseKmsEncryptedObjects", - "description": "A container for filter information for the selection of Amazon S3 objects encrypted with AWS KMS." - } - }, - "type": "object" - }, - "SseKmsEncryptedObjects": { - "additionalProperties": false, - "description": "A container for filter information for the selection of S3 objects encrypted with AWS KMS.", - "properties": { - "Status": { - "description": "Specifies whether Amazon S3 replicates objects created with server-side encryption using a customer master key (CMK) stored in AWS Key Management Service.", - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "StorageClassAnalysis": { - "additionalProperties": false, - "description": "Specifies data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes for an Amazon S3 bucket.", - "properties": { - "DataExport": { - "$ref": "#/definitions/DataExport" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "description": "Tags to use to identify a subset of objects for an Amazon S3 bucket.", - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "Tiering": { - "additionalProperties": false, - "properties": { - "AccessTier": { - "description": "S3 Intelligent-Tiering access tier. See Storage class for automatically optimizing frequently and infrequently accessed objects for a list of access tiers in the S3 Intelligent-Tiering storage class.", - "enum": [ - "ARCHIVE_ACCESS", - "DEEP_ARCHIVE_ACCESS" - ], - "type": "string" - }, - "Days": { - "description": "The number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier. The minimum number of days specified for Archive Access tier must be at least 90 days and Deep Archive Access tier must be at least 180 days. The maximum can be up to 2 years (730 days).", - "type": "integer" - } - }, - "required": [ - "AccessTier", - "Days" - ], - "type": "object" - }, - "TopicConfiguration": { - "additionalProperties": false, - "description": "The topic to which notifications are sent and the events for which notifications are generated.", - "properties": { - "Event": { - "description": "The Amazon S3 bucket event about which to send notifications.", - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter", - "description": "The filtering rules that determine for which objects to send notifications." - }, - "Topic": { - "description": "The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 publishes a message when it detects events of the specified type.", - "type": "string" - } - }, - "required": [ - "Event", - "Topic" - ], - "type": "object" - }, - "Transition": { - "additionalProperties": false, - "description": "You must specify at least one of \"TransitionDate\" and \"TransitionInDays\"", - "properties": { - "StorageClass": { - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "Glacier", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "STANDARD_IA" - ], - "type": "string" - }, - "TransitionDate": { - "$ref": "#/definitions/iso8601UTC" - }, - "TransitionInDays": { - "type": "integer" - } - }, - "required": [ - "StorageClass" - ], - "type": "object" - }, - "VersioningConfiguration": { - "additionalProperties": false, - "description": "Describes the versioning state of an Amazon S3 bucket.", - "properties": { - "Status": { - "default": "Suspended", - "description": "The versioning state of the bucket.", - "enum": [ - "Enabled", - "Suspended" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "WebsiteConfiguration": { - "additionalProperties": false, - "description": "Specifies website configuration parameters for an Amazon S3 bucket.", - "properties": { - "ErrorDocument": { - "description": "The name of the error document for the website.", - "type": "string" - }, - "IndexDocument": { - "description": "The name of the index document for the website.", - "type": "string" - }, - "RedirectAllRequestsTo": { - "$ref": "#/definitions/RedirectAllRequestsTo" - }, - "RoutingRules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/RoutingRule" - }, - "type": "array" - } - }, - "type": "object" - }, - "iso8601UTC": { - "description": "The date value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ssZ)", - "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", - "type": "string" - } - }, - "description": "Resource Type definition for AWS::S3::Bucket", - "handlers": { - "create": { - "permissions": [ - "s3:CreateBucket", - "s3:PutBucketTagging", - "s3:PutAnalyticsConfiguration", - "s3:PutEncryptionConfiguration", - "s3:PutBucketCORS", - "s3:PutInventoryConfiguration", - "s3:PutLifecycleConfiguration", - "s3:PutMetricsConfiguration", - "s3:PutBucketNotification", - "s3:PutBucketReplication", - "s3:PutBucketWebsite", - "s3:PutAccelerateConfiguration", - "s3:PutBucketPublicAccessBlock", - "s3:PutReplicationConfiguration", - "s3:PutObjectAcl", - "s3:PutBucketObjectLockConfiguration", - "s3:GetBucketAcl", - "s3:ListBucket", - "iam:PassRole", - "s3:DeleteObject", - "s3:PutBucketLogging", - "s3:PutBucketVersioning", - "s3:PutObjectLockConfiguration", - "s3:PutBucketOwnershipControls", - "s3:PutIntelligentTieringConfiguration" - ] - }, - "delete": { - "permissions": [ - "s3:DeleteBucket", - "s3:ListBucket" - ] - }, - "list": { - "permissions": [ - "s3:ListAllMyBuckets" - ] - }, - "read": { - "permissions": [ - "s3:GetAccelerateConfiguration", - "s3:GetLifecycleConfiguration", - "s3:GetBucketPublicAccessBlock", - "s3:GetAnalyticsConfiguration", - "s3:GetBucketCORS", - "s3:GetEncryptionConfiguration", - "s3:GetInventoryConfiguration", - "s3:GetBucketLogging", - "s3:GetMetricsConfiguration", - "s3:GetBucketNotification", - "s3:GetBucketVersioning", - "s3:GetReplicationConfiguration", - "S3:GetBucketWebsite", - "s3:GetBucketPublicAccessBlock", - "s3:GetBucketObjectLockConfiguration", - "s3:GetBucketTagging", - "s3:GetBucketOwnershipControls", - "s3:GetIntelligentTieringConfiguration", - "s3:ListBucket" - ] - }, - "update": { - "permissions": [ - "s3:PutBucketAcl", - "s3:PutBucketTagging", - "s3:PutAnalyticsConfiguration", - "s3:PutEncryptionConfiguration", - "s3:PutBucketCORS", - "s3:PutInventoryConfiguration", - "s3:PutLifecycleConfiguration", - "s3:PutMetricsConfiguration", - "s3:PutBucketNotification", - "s3:PutBucketReplication", - "s3:PutBucketWebsite", - "s3:PutAccelerateConfiguration", - "s3:PutBucketPublicAccessBlock", - "s3:PutReplicationConfiguration", - "s3:PutBucketOwnershipControls", - "s3:PutIntelligentTieringConfiguration", - "s3:DeleteBucketWebsite", - "s3:PutBucketLogging", - "s3:PutBucketVersioning", - "s3:PutObjectLockConfiguration", - "s3:PutBucketObjectLockConfiguration", - "s3:DeleteBucketAnalyticsConfiguration", - "s3:DeleteBucketCors", - "s3:DeleteBucketMetricsConfiguration", - "s3:DeleteBucketEncryption", - "s3:DeleteBucketLifecycle", - "s3:DeleteBucketReplication", - "iam:PassRole", - "s3:ListBucket" - ] - } - }, - "primaryIdentifier": [ - "/properties/BucketName" - ], - "properties": { - "AccelerateConfiguration": { - "$ref": "#/definitions/AccelerateConfiguration", - "description": "Configuration for the transfer acceleration state." - }, - "AccessControl": { - "description": "A canned access control list (ACL) that grants predefined permissions to the bucket.", - "enum": [ - "AuthenticatedRead", - "AwsExecRead", - "BucketOwnerFullControl", - "BucketOwnerRead", - "LogDeliveryWrite", - "Private", - "PublicRead", - "PublicReadWrite" - ], - "type": "string" - }, - "AnalyticsConfigurations": { - "description": "The configuration and any analyses for the analytics filter of an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/AnalyticsConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "Arn": { - "$ref": "#/definitions/Arn", - "description": "The Amazon Resource Name (ARN) of the specified bucket.", - "examples": [ - "arn:aws:s3:::mybucket" - ] - }, - "BucketEncryption": { - "$ref": "#/definitions/BucketEncryption" - }, - "BucketName": { - "description": "A name for the bucket. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][a-z0-9.-]*[a-z0-9]$", - "type": "string" - }, - "CorsConfiguration": { - "$ref": "#/definitions/CorsConfiguration", - "description": "Rules that define cross-origin resource sharing of objects in this bucket." - }, - "DomainName": { - "description": "The IPv4 DNS name of the specified bucket.", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.amazonaws.com" - ], - "type": "string" - }, - "DualStackDomainName": { - "description": "The IPv6 DNS name of the specified bucket. For more information about dual-stack endpoints, see [Using Amazon S3 Dual-Stack Endpoints](https://docs.aws.amazon.com/AmazonS3/latest/dev/dual-stack-endpoints.html).", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com" - ], - "type": "string" - }, - "IntelligentTieringConfigurations": { - "description": "Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/IntelligentTieringConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "InventoryConfigurations": { - "description": "The inventory configuration for an Amazon S3 bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/InventoryConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "LifecycleConfiguration": { - "$ref": "#/definitions/LifecycleConfiguration", - "description": "Rules that define how Amazon S3 manages objects during their lifetime." - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration", - "description": "Settings that define where logs are stored." - }, - "MetricsConfigurations": { - "description": "Settings that define a metrics configuration for the CloudWatch request metrics from the bucket.", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/MetricsConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "NotificationConfiguration": { - "$ref": "#/definitions/NotificationConfiguration", - "description": "Configuration that defines how Amazon S3 handles bucket notifications." - }, - "ObjectLockConfiguration": { - "$ref": "#/definitions/ObjectLockConfiguration", - "description": "Places an Object Lock configuration on the specified bucket." - }, - "ObjectLockEnabled": { - "description": "Indicates whether this bucket has an Object Lock configuration enabled.", - "type": "boolean" - }, - "OwnershipControls": { - "$ref": "#/definitions/OwnershipControls", - "description": "Specifies the container element for object ownership rules." - }, - "PublicAccessBlockConfiguration": { - "$ref": "#/definitions/PublicAccessBlockConfiguration" - }, - "RegionalDomainName": { - "description": "Returns the regional domain name of the specified bucket.", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.us-east-2.amazonaws.com" - ], - "type": "string" - }, - "ReplicationConfiguration": { - "$ref": "#/definitions/ReplicationConfiguration", - "description": "Configuration for replicating objects in an S3 bucket." - }, - "Tags": { - "description": "An arbitrary set of tags (key-value pairs) for this S3 bucket.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VersioningConfiguration": { - "$ref": "#/definitions/VersioningConfiguration" - }, - "WebsiteConfiguration": { - "$ref": "#/definitions/WebsiteConfiguration" - }, - "WebsiteURL": { - "description": "The Amazon S3 website endpoint for the specified bucket.", - "examples": [ - "Example (IPv4): http://mystack-mybucket-kdwwxmddtr2g.s3-website-us-east-2.amazonaws.com/", - "Example (IPv6): http://mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com/" - ], - "format": "uri", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/DomainName", - "/properties/DualStackDomainName", - "/properties/RegionalDomainName", - "/properties/WebsiteURL" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::S3::Bucket", - "writeOnlyProperties": [ - "/properties/AccessControl", - "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionExpirationInDays", - "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionTransition", - "/properties/LifecycleConfiguration/Rules/*/Transition", - "/properties/ReplicationConfiguration/Rules/*/Prefix", - "/properties/LifecycleConfiguration/Rules/*/ExpiredObjectDeleteMarker" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-sagemaker-app.json new file mode 100644 index 0000000000..da6e3f4330 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-sagemaker-app.json @@ -0,0 +1,216 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/Tags", + "/properties/ResourceSpec" + ], + "definitions": { + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "description": "The instance type that the image version runs on.", + "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" + ], + "type": "string" + }, + "SageMakerImageArn": { + "description": "The ARN of the SageMaker image that the image version belongs to.", + "maxLength": 256, + "minLength": 1, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "description": "The ARN of the image version created on the instance.", + "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" + } + }, + "description": "Resource Type definition for AWS::SageMaker::App", + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateApp", + "sagemaker:DescribeApp" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteApp" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListApps" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeApp" + ] + } + }, + "primaryIdentifier": [ + "/properties/AppName", + "/properties/AppType", + "/properties/DomainId", + "/properties/UserProfileName" + ], + "properties": { + "AppArn": { + "description": "The Amazon Resource Name (ARN) of the app.", + "maxLength": 256, + "minLength": 1, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app/.*", + "type": "string" + }, + "AppName": { + "description": "The name of the app.", + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "AppType": { + "description": "The type of app.", + "enum": [ + "JupyterServer", + "KernelGateway", + "RStudioServerPro", + "RSessionGateway", + "Canvas" + ], + "type": "string" + }, + "DomainId": { + "description": "The domain ID.", + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "ResourceSpec": { + "$ref": "#/definitions/ResourceSpec", + "description": "The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance." + }, + "Tags": { + "description": "A list of tags to apply to the app.", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileName": { + "description": "The user profile name.", + "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/us_west_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-sagemaker-domain.json new file mode 100644 index 0000000000..1948e2768f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-sagemaker-domain.json @@ -0,0 +1,575 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AppNetworkAccessType", + "/properties/AuthMode", + "/properties/DomainName", + "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", + "/properties/KmsKeyId", + "/properties/SubnetIds", + "/properties/VpcId", + "/properties/Tags" + ], + "definitions": { + "CustomImage": { + "additionalProperties": false, + "description": "A custom SageMaker image.", + "properties": { + "AppImageConfigName": { + "description": "The Name of the AppImageConfig.", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "description": "The name of the CustomImage. Must be unique to your account.", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "description": "The version number of the CustomImage.", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "DefaultSpaceSettings": { + "additionalProperties": false, + "description": "A collection of settings that apply to spaces of Amazon SageMaker Studio. These settings are specified when the Create/Update Domain API is called.", + "properties": { + "ExecutionRole": { + "description": "The execution role for the space.", + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings", + "description": "The Jupyter server's app settings." + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings", + "description": "The kernel gateway app settings." + }, + "SecurityGroups": { + "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + }, + "DomainSettings": { + "additionalProperties": false, + "description": "A collection of Domain settings.", + "properties": { + "RStudioServerProDomainSettings": { + "$ref": "#/definitions/RStudioServerProDomainSettings" + }, + "SecurityGroupIds": { + "description": "The security groups for the Amazon Virtual Private Cloud that the Domain uses for communication between Domain-level apps and user apps.", + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "description": "The JupyterServer app settings.", + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "description": "The kernel gateway app settings.", + "properties": { + "CustomImages": { + "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec", + "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app." + } + }, + "type": "object" + }, + "RSessionAppSettings": { + "additionalProperties": false, + "description": "A collection of settings that apply to an RSessionGateway app.", + "properties": { + "CustomImages": { + "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "description": "A collection of settings that configure user interaction with the RStudioServerPro app.", + "properties": { + "AccessStatus": { + "description": "Indicates whether the current user has access to the RStudioServerPro app.", + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "description": "The level of permissions that the user has within the RStudioServerPro app. This value defaults to User. The Admin value allows the user access to the RStudio Administrative Dashboard.", + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "RStudioServerProDomainSettings": { + "additionalProperties": false, + "description": "A collection of settings that update the current configuration for the RStudioServerPro Domain-level app.", + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + }, + "DomainExecutionRoleArn": { + "description": "The ARN of the execution role for the RStudioServerPro Domain-level app.", + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "RStudioConnectUrl": { + "description": "A URL pointing to an RStudio Connect server.", + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + }, + "RStudioPackageManagerUrl": { + "description": "A URL pointing to an RStudio Package Manager server.", + "pattern": "^(https:|http:|www\\.)\\S*", + "type": "string" + } + }, + "required": [ + "DomainExecutionRoleArn" + ], + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "description": "The instance type that the image version runs on.", + "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" + ], + "type": "string" + }, + "LifecycleConfigArn": { + "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + "type": "string" + }, + "SageMakerImageArn": { + "description": "The Amazon Resource Name (ARN) of the SageMaker image that the image version belongs to.", + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "description": "The Amazon Resource Name (ARN) of the image version created on the instance.", + "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, + "description": "Specifies options when sharing an Amazon SageMaker Studio notebook. These settings are specified as part of DefaultUserSettings when the CreateDomain API is called, and as part of UserSettings when the CreateUserProfile API is called.", + "properties": { + "NotebookOutputOption": { + "description": "Whether to include the notebook cell output when sharing the notebook. The default is Disabled.", + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "description": "When NotebookOutputOption is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.", + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "description": "When NotebookOutputOption is Allowed, the Amazon S3 bucket used to store the shared notebook snapshots.", + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "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" + }, + "UserSettings": { + "additionalProperties": false, + "description": "A collection of settings that apply to users of Amazon SageMaker Studio. These settings are specified when the CreateUserProfile API is called, and as DefaultUserSettings when the CreateDomain API is called.", + "properties": { + "ExecutionRole": { + "description": "The execution role for the user.", + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings", + "description": "The Jupyter server's app settings." + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings", + "description": "The kernel gateway app settings." + }, + "RSessionAppSettings": { + "$ref": "#/definitions/RSessionAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings", + "description": "The sharing settings." + } + }, + "required": [ + "ExecutionRole" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::SageMaker::Domain", + "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": { + "description": "Specifies the VPC used for non-EFS traffic. The default value is PublicInternetOnly.", + "enum": [ + "PublicInternetOnly", + "VpcOnly" + ], + "type": "string" + }, + "AppSecurityGroupManagement": { + "description": "The entity that creates and manages the required security groups for inter-app communication in VPCOnly mode. Required when CreateDomain.AppNetworkAccessType is VPCOnly and DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn is provided.", + "enum": [ + "Service", + "Customer" + ], + "type": "string" + }, + "AuthMode": { + "description": "The mode of authentication that members use to access the domain.", + "enum": [ + "SSO", + "IAM" + ], + "type": "string" + }, + "DefaultSpaceSettings": { + "$ref": "#/definitions/DefaultSpaceSettings", + "description": "The default space settings." + }, + "DefaultUserSettings": { + "$ref": "#/definitions/UserSettings", + "description": "The default user settings." + }, + "DomainArn": { + "description": "The Amazon Resource Name (ARN) of the created domain.", + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", + "type": "string" + }, + "DomainId": { + "description": "The domain name.", + "maxLength": 63, + "pattern": "^d-(-*[a-z0-9])+", + "type": "string" + }, + "DomainName": { + "description": "A name for the domain.", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "DomainSettings": { + "$ref": "#/definitions/DomainSettings" + }, + "HomeEfsFileSystemId": { + "description": "The ID of the Amazon Elastic File System (EFS) managed by this Domain.", + "maxLength": 32, + "type": "string" + }, + "KmsKeyId": { + "description": "SageMaker uses AWS KMS to encrypt the EFS volume attached to the domain with an AWS managed customer master key (CMK) by default.", + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "SecurityGroupIdForDomainBoundary": { + "description": "The ID of the security group that authorizes traffic between the RSessionGateway apps and the RStudioServerPro app.", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "SingleSignOnManagedApplicationInstanceId": { + "description": "The SSO managed application instance ID.", + "maxLength": 256, + "type": "string" + }, + "SubnetIds": { + "description": "The VPC subnets that Studio uses for communication.", + "insertionOrder": false, + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "description": "A list of tags to apply to the user profile.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Url": { + "description": "The URL to the created domain.", + "maxLength": 1024, + "type": "string" + }, + "VpcId": { + "description": "The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/DomainArn", + "/properties/Url", + "/properties/DomainId", + "/properties/HomeEfsFileSystemId", + "/properties/SecurityGroupIdForDomainBoundary", + "/properties/SingleSignOnManagedApplicationInstanceId" + ], + "required": [ + "AuthMode", + "DefaultUserSettings", + "DomainName", + "SubnetIds", + "VpcId" + ], + "typeName": "AWS::SageMaker::Domain", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-sagemaker-userprofile.json new file mode 100644 index 0000000000..8d20becfab --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-sagemaker-userprofile.json @@ -0,0 +1,368 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainId", + "/properties/UserProfileName", + "/properties/SingleSignOnUserIdentifier", + "/properties/SingleSignOnUserValue", + "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", + "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", + "/properties/Tags" + ], + "definitions": { + "CustomImage": { + "additionalProperties": false, + "description": "A custom SageMaker image.", + "properties": { + "AppImageConfigName": { + "description": "The Name of the AppImageConfig.", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + "type": "string" + }, + "ImageName": { + "description": "The name of the CustomImage. Must be unique to your account.", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "ImageVersionNumber": { + "description": "The version number of the CustomImage.", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "JupyterServerAppSettings": { + "additionalProperties": false, + "description": "The JupyterServer app settings.", + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec" + } + }, + "type": "object" + }, + "KernelGatewayAppSettings": { + "additionalProperties": false, + "description": "The kernel gateway app settings.", + "properties": { + "CustomImages": { + "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", + "items": { + "$ref": "#/definitions/CustomImage" + }, + "maxItems": 30, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/ResourceSpec", + "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app." + } + }, + "type": "object" + }, + "RStudioServerProAppSettings": { + "additionalProperties": false, + "description": "A collection of settings that configure user interaction with the RStudioServerPro app.", + "properties": { + "AccessStatus": { + "description": "Indicates whether the current user has access to the RStudioServerPro app.", + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "UserGroup": { + "description": "The level of permissions that the user has within the RStudioServerPro app. This value defaults to User. The Admin value allows the user access to the RStudio Administrative Dashboard.", + "enum": [ + "R_STUDIO_ADMIN", + "R_STUDIO_USER" + ], + "type": "string" + } + }, + "type": "object" + }, + "ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "description": "The instance type that the image version runs on.", + "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" + ], + "type": "string" + }, + "SageMakerImageArn": { + "description": "The ARN of the SageMaker image that the image version belongs to.", + "maxLength": 256, + "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", + "type": "string" + }, + "SageMakerImageVersionArn": { + "description": "The ARN of the image version created on the instance.", + "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, + "description": "Specifies options when sharing an Amazon SageMaker Studio notebook. These settings are specified as part of DefaultUserSettings when the CreateDomain API is called, and as part of UserSettings when the CreateUserProfile API is called.", + "properties": { + "NotebookOutputOption": { + "description": "Whether to include the notebook cell output when sharing the notebook. The default is Disabled.", + "enum": [ + "Allowed", + "Disabled" + ], + "type": "string" + }, + "S3KmsKeyId": { + "description": "When NotebookOutputOption is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.", + "maxLength": 2048, + "pattern": ".*", + "type": "string" + }, + "S3OutputPath": { + "description": "When NotebookOutputOption is Allowed, the Amazon S3 bucket used to store the shared notebook snapshots.", + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$", + "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" + }, + "UserSettings": { + "additionalProperties": false, + "description": "A collection of settings that apply to users of Amazon SageMaker Studio. These settings are specified when the CreateUserProfile API is called, and as DefaultUserSettings when the CreateDomain API is called.", + "properties": { + "ExecutionRole": { + "description": "The user profile Amazon Resource Name (ARN).", + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/JupyterServerAppSettings", + "description": "The Jupyter server's app settings." + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/KernelGatewayAppSettings", + "description": "The kernel gateway app settings." + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/RStudioServerProAppSettings" + }, + "SecurityGroups": { + "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", + "items": { + "maxLength": 32, + "pattern": "[-0-9a-zA-Z]+", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "SharingSettings": { + "$ref": "#/definitions/SharingSettings", + "description": "The sharing settings." + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::SageMaker::UserProfile", + "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": { + "description": "The ID of the associated Domain.", + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "SingleSignOnUserIdentifier": { + "description": "A specifier for the type of value specified in SingleSignOnUserValue. Currently, the only supported value is \"UserName\". If the Domain's AuthMode is SSO, this field is required. If the Domain's AuthMode is not SSO, this field cannot be specified.", + "pattern": "UserName", + "type": "string" + }, + "SingleSignOnUserValue": { + "description": "The username of the associated AWS Single Sign-On User for this UserProfile. If the Domain's AuthMode is SSO, this field is required, and must match a valid username of a user in your directory. If the Domain's AuthMode is not SSO, this field cannot be specified.", + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Tags": { + "description": "A list of tags to apply to the user profile.", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "UserProfileArn": { + "description": "The user profile Amazon Resource Name (ARN).", + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", + "type": "string" + }, + "UserProfileName": { + "description": "A name for the UserProfile.", + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "UserSettings": { + "$ref": "#/definitions/UserSettings", + "description": "A collection of settings.", + "maxItems": 50, + "minItems": 0, + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/UserProfileArn" + ], + "required": [ + "DomainId", + "UserProfileName" + ], + "typeName": "AWS::SageMaker::UserProfile", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-securityhub-hub.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-securityhub-hub.json new file mode 100644 index 0000000000..b0401a5225 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-securityhub-hub.json @@ -0,0 +1,28 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::SecurityHub::Hub", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoEnableControls": { + "type": "boolean" + }, + "ControlFindingGenerator": { + "type": "string" + }, + "EnableDefaultStandards": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SecurityHub::Hub" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-servicecatalogappregistry-application.json new file mode 100644 index 0000000000..b04a7d7289 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-servicecatalogappregistry-application.json @@ -0,0 +1,100 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Name" + ] + ], + "additionalProperties": false, + "definitions": { + "Tags": { + "additionalProperties": false, + "maxProperties": 50, + "patternProperties": { + "^[a-zA-Z+-=._:/]+$": { + "maxLength": 256, + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application", + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-application.html", + "handlers": { + "create": { + "permissions": [ + "servicecatalog:CreateApplication", + "servicecatalog:TagResource", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "servicecatalog:DeleteApplication" + ] + }, + "list": { + "permissions": [ + "servicecatalog:ListApplications" + ] + }, + "read": { + "permissions": [ + "servicecatalog:GetApplication" + ] + }, + "update": { + "permissions": [ + "servicecatalog:GetApplication", + "servicecatalog:ListTagsForResource", + "servicecatalog:TagResource", + "servicecatalog:UntagResource", + "servicecatalog:UpdateApplication", + "iam:CreateServiceLinkedRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", + "type": "string" + }, + "Description": { + "description": "The description of the application. ", + "maxLength": 1024, + "type": "string" + }, + "Id": { + "pattern": "[a-z0-9]{26}", + "type": "string" + }, + "Name": { + "description": "The name of the application. ", + "maxLength": 256, + "minLength": 1, + "pattern": "\\w+", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ServiceCatalogAppRegistry::Application" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/__init__.py b/src/cfnlint/data/schemas/providers/us_west_2/__init__.py index add1991e43..c3c67083f8 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_west_2/__init__.py @@ -8,6 +8,7 @@ "AWS::Pinpoint::App", "AWS::Connect::UserHierarchyGroup", "AWS::ApiGatewayV2::ApiMapping", + "AWS::CE::AnomalySubscription", "AWS::Shield::DRTAccess", "AWS::SSO::Assignment", "AWS::Glue::Partition", @@ -65,6 +66,7 @@ "AWS::Logs::ResourcePolicy", "AWS::Lex::BotVersion", "AWS::ServiceCatalog::LaunchNotificationConstraint", + "AWS::DMS::InstanceProfile", "AWS::OpenSearchServerless::VpcEndpoint", "AWS::QuickSight::DataSource", "AWS::IoT::CACertificate", @@ -367,6 +369,7 @@ "AWS::AppStream::AppBlock", "AWS::IoTWireless::ServiceProfile", "AWS::Shield::Protection", + "AWS::B2BI::Transformer", "AWS::SES::VdmAttributes", "AWS::IdentityStore::GroupMembership", "AWS::AppSync::FunctionConfiguration", @@ -511,6 +514,7 @@ "AWS::IoT::SoftwarePackageVersion", "AWS::EC2::NetworkInsightsAnalysis", "AWS::EC2::ClientVpnRoute", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::Omics::VariantStore", "AWS::AppSync::ApiKey", @@ -547,6 +551,7 @@ "AWS::Kinesis::Stream", "AWS::Greengrass::CoreDefinition", "AWS::Backup::ReportPlan", + "AWS::B2BI::Capability", "AWS::PinpointEmail::DedicatedIpPool", "AWS::Batch::JobDefinition", "AWS::IAM::SAMLProvider", @@ -616,6 +621,7 @@ "AWS::ServiceCatalog::AcceptedPortfolioShare", "AWS::Route53Resolver::FirewallRuleGroupAssociation", "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", "AWS::EC2::Subnet", "AWS::CloudTrail::ResourcePolicy", "AWS::IoTTwinMaker::ComponentType", @@ -808,6 +814,7 @@ "AWS::CloudWatch::AnomalyDetector", "AWS::EC2::SubnetNetworkAclAssociation", "AWS::ServiceCatalog::ServiceAction", + "AWS::DMS::MigrationProject", "AWS::AppStream::Entitlement", "AWS::IAM::UserPolicy", "AWS::Connect::ViewVersion", @@ -892,6 +899,7 @@ "AWS::Glue::Registry", "AWS::DeviceFarm::VPCEConfiguration", "AWS::EC2::KeyPair", + "AWS::B2BI::Profile", "AWS::FSx::FileSystem", "AWS::AppStream::ApplicationFleetAssociation", "AWS::MediaTailor::LiveSource", @@ -1039,6 +1047,7 @@ "AWS::ApiGateway::Deployment", "AWS::WAFRegional::Rule", "AWS::Inspector::ResourceGroup", + "AWS::B2BI::Partnership", "AWS::LakeFormation::DataLakeSettings", "AWS::GreengrassV2::Deployment", "AWS::AutoScaling::ScalingPolicy", @@ -1052,6 +1061,7 @@ "AWS::ApiGatewayV2::RouteResponse", "AWS::QuickSight::Topic", "AWS::CloudWatch::MetricStream", + "AWS::DMS::DataProvider", "AWS::Location::GeofenceCollection", "AWS::SSM::Parameter", "AWS::ApiGatewayV2::ApiGatewayManagedOverrides", @@ -1061,6 +1071,7 @@ "AWS::SageMaker::MonitoringSchedule", "AWS::IAM::OIDCProvider", "AWS::LakeFormation::Tag", + "AWS::CE::AnomalyMonitor", "AWS::ServiceCatalogAppRegistry::ResourceAssociation", "AWS::Timestream::Table", "AWS::EC2::VPNGateway", @@ -1172,6 +1183,7 @@ "aws-pinpoint-app.json", "aws-connect-userhierarchygroup.json", "aws-apigatewayv2-apimapping.json", + "aws-ce-anomalysubscription.json", "aws-shield-drtaccess.json", "aws-sso-assignment.json", "aws-glue-partition.json", @@ -1186,6 +1198,7 @@ "aws-ecs-service.json", "aws-servicecatalog-portfolioprincipalassociation.json", "aws-ram-resourceshare.json", + "aws-dms-replicationconfig.json", "aws-dynamodb-table.json", "aws-amazonmq-configurationassociation.json", "aws-wafregional-ipset.json", @@ -1201,6 +1214,7 @@ "aws-config-configurationrecorder.json", "aws-msk-replicator.json", "aws-ec2-networkperformancemetricsubscription.json", + "aws-medialive-channel.json", "aws-greengrass-devicedefinition.json", "aws-cloudfront-continuousdeploymentpolicy.json", "aws-quicksight-analysis.json", @@ -1225,6 +1239,7 @@ "aws-logs-resourcepolicy.json", "aws-lex-botversion.json", "aws-servicecatalog-launchnotificationconstraint.json", + "aws-dms-instanceprofile.json", "aws-opensearchserverless-vpcendpoint.json", "aws-quicksight-datasource.json", "aws-iot-cacertificate.json", @@ -1336,7 +1351,6 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", - "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -1365,9 +1379,11 @@ "aws-customerprofiles-integration.json", "aws-workspaces-connectionalias.json", "aws-wafregional-sizeconstraintset.json", + "aws-eventschemas-discoverer.json", "aws-networkmanager-connectpeer.json", "aws-elasticache-usergroup.json", "aws-iot-thinggroup.json", + "aws-logs-deliverydestination.json", "aws-imagebuilder-imagerecipe.json", "aws-iot-softwarepackage.json", "aws-apigateway-restapi.json", @@ -1406,6 +1422,7 @@ "aws-backup-backupselection.json", "aws-datasync-locationfsxlustre.json", "aws-sagemaker-app.json", + "aws-logs-deliverysource.json", "aws-ec2-vpcgatewayattachment.json", "aws-cloudtrail-trail.json", "aws-ec2-vpnconnectionroute.json", @@ -1421,6 +1438,7 @@ "aws-greengrass-group.json", "aws-ssm-document.json", "aws-iam-role.json", + "aws-workspacesthinclient-environment.json", "aws-dms-endpoint.json", "aws-iotsitewise-project.json", "aws-medialive-multiplexprogram.json", @@ -1429,6 +1447,7 @@ "aws-codestarnotifications-notificationrule.json", "aws-sagemaker-endpointconfig.json", "aws-appmesh-gatewayroute.json", + "aws-cleanrooms-membership.json", "aws-apigateway-apikey.json", "aws-gamelift-location.json", "aws-networkmanager-transitgatewayroutetableattachment.json", @@ -1445,7 +1464,6 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", - "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-entityresolution-schemamapping.json", "aws-wafregional-xssmatchset.json", @@ -1459,6 +1477,7 @@ "aws-guardduty-member.json", "aws-groundstation-missionprofile.json", "aws-cloudformation-customresource.json", + "aws-fis-targetaccountconfiguration.json", "aws-refactorspaces-route.json", "aws-nimblestudio-launchprofile.json", "aws-kinesisanalytics-applicationoutput.json", @@ -1472,7 +1491,6 @@ "aws-route53recoverycontrol-routingcontrol.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", - "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-location-trackerconsumer.json", "aws-vpclattice-servicenetwork.json", @@ -1481,6 +1499,7 @@ "aws-ec2-route.json", "aws-wisdom-assistantassociation.json", "aws-kendra-index.json", + "aws-fis-experimenttemplate.json", "aws-codecommit-repository.json", "aws-cloudformation-hookversion.json", "aws-rolesanywhere-profile.json", @@ -1512,10 +1531,12 @@ "aws-ecs-taskdefinition.json", "aws-sagemaker-model.json", "aws-quicksight-refreshschedule.json", + "aws-memorydb-parametergroup.json", "aws-robomaker-robotapplicationversion.json", "aws-appstream-appblock.json", "aws-iotwireless-serviceprofile.json", "aws-shield-protection.json", + "aws-b2bi-transformer.json", "aws-ses-vdmattributes.json", "aws-identitystore-groupmembership.json", "aws-appsync-functionconfiguration.json", @@ -1530,6 +1551,7 @@ "aws-timestream-scheduledquery.json", "aws-frauddetector-list.json", "aws-fms-notificationchannel.json", + "aws-msk-batchscramsecret.json", "aws-connect-hoursofoperation.json", "aws-dms-certificate.json", "aws-s3-bucket.json", @@ -1589,7 +1611,6 @@ "aws-databrew-ruleset.json", "aws-gamelift-matchmakingconfiguration.json", "aws-applicationinsights-application.json", - "aws-ecs-clustercapacityproviderassociations.json", "aws-appconfig-configurationprofile.json", "aws-route53resolver-firewallrulegroup.json", "aws-docdbelastic-cluster.json", @@ -1608,7 +1629,6 @@ "aws-pinpoint-apnsvoipsandboxchannel.json", "aws-config-organizationconformancepack.json", "aws-connect-quickconnect.json", - "aws-logs-querydefinition.json", "aws-iam-instanceprofile.json", "aws-iot-billinggroup.json", "aws-appstream-application.json", @@ -1627,7 +1647,6 @@ "aws-cognito-userpooluicustomizationattachment.json", "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-imagebuilder-containerrecipe.json", - "aws-connect-rule.json", "aws-efs-accesspoint.json", "aws-omics-referencestore.json", "aws-redshift-clustersecuritygroupingress.json", @@ -1644,6 +1663,7 @@ "aws-codestarconnections-repositorylink.json", "aws-ivs-channel.json", "aws-refactorspaces-service.json", + "aws-memorydb-user.json", "aws-ec2-networkinterfacepermission.json", "aws-servicecatalog-tagoption.json", "aws-servicediscovery-privatednsnamespace.json", @@ -1691,6 +1711,7 @@ "aws-kinesis-stream.json", "aws-greengrass-coredefinition.json", "aws-backup-reportplan.json", + "aws-b2bi-capability.json", "aws-pinpointemail-dedicatedippool.json", "aws-batch-jobdefinition.json", "aws-iam-samlprovider.json", @@ -1757,6 +1778,7 @@ "aws-servicecatalog-acceptedportfolioshare.json", "aws-route53resolver-firewallrulegroupassociation.json", "aws-route53resolver-resolverqueryloggingconfig.json", + "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-subnet.json", "aws-cloudtrail-resourcepolicy.json", "aws-iottwinmaker-componenttype.json", @@ -1822,7 +1844,6 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", - "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-customerprofiles-eventstream.json", @@ -1875,6 +1896,7 @@ "aws-ssmincidents-responseplan.json", "aws-lambda-layerversionpermission.json", "aws-secretsmanager-secret.json", + "aws-route53resolver-resolverconfig.json", "aws-elasticache-user.json", "aws-neptune-dbinstance.json", "aws-sagemaker-image.json", @@ -1890,6 +1912,7 @@ "aws-datasync-locations3.json", "aws-mediaconvert-preset.json", "aws-autoscaling-lifecyclehook.json", + "aws-fsx-datarepositoryassociation.json", "aws-ec2-networkinterface.json", "aws-sagemaker-featuregroup.json", "aws-appsync-resolver.json", @@ -1907,6 +1930,7 @@ "aws-opsworks-userprofile.json", "aws-glue-schema.json", "aws-docdb-dbsubnetgroup.json", + "aws-logs-delivery.json", "aws-servicecatalog-portfolio.json", "aws-workspacesweb-truststore.json", "aws-customerprofiles-domain.json", @@ -1942,6 +1966,7 @@ "aws-cloudwatch-anomalydetector.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-servicecatalog-serviceaction.json", + "aws-dms-migrationproject.json", "aws-appstream-entitlement.json", "aws-iam-userpolicy.json", "aws-connect-viewversion.json", @@ -1960,7 +1985,6 @@ "aws-lightsail-loadbalancertlscertificate.json", "aws-ec2-clientvpntargetnetworkassociation.json", "aws-mediapackagev2-originendpoint.json", - "aws-appsync-graphqlapi.json", "aws-gamelift-matchmakingruleset.json", "aws-ec2-egressonlyinternetgateway.json", "aws-athena-capacityreservation.json", @@ -2024,6 +2048,7 @@ "aws-elasticloadbalancingv2-truststore.json", "aws-glue-registry.json", "aws-ec2-keypair.json", + "aws-b2bi-profile.json", "aws-fsx-filesystem.json", "aws-appstream-applicationfleetassociation.json", "aws-mediatailor-livesource.json", @@ -2075,7 +2100,6 @@ "aws-personalize-dataset.json", "aws-iot1click-placement.json", "aws-ec2-prefixlist.json", - "aws-ec2-instance.json", "aws-opensearchserverless-securityconfig.json", "aws-networkmanager-device.json", "aws-proton-environmentaccountconnection.json", @@ -2092,6 +2116,7 @@ "aws-events-endpoint.json", "aws-amazonmq-broker.json", "aws-emr-step.json", + "aws-cleanrooms-collaboration.json", "aws-ssm-association.json", "aws-ec2-clientvpnendpoint.json", "aws-cloudfront-responseheaderspolicy.json", @@ -2128,7 +2153,6 @@ "aws-dax-parametergroup.json", "aws-ses-receiptfilter.json", "aws-directoryservice-microsoftad.json", - "aws-memorydb-subnetgroup.json", "aws-appsync-sourceapiassociation.json", "aws-datasync-locationobjectstorage.json", "aws-ecs-capacityprovider.json", @@ -2166,6 +2190,7 @@ "aws-apigateway-deployment.json", "aws-wafregional-rule.json", "aws-inspector-resourcegroup.json", + "aws-b2bi-partnership.json", "aws-lakeformation-datalakesettings.json", "aws-greengrassv2-deployment.json", "aws-autoscaling-scalingpolicy.json", @@ -2179,6 +2204,7 @@ "aws-apigatewayv2-routeresponse.json", "aws-quicksight-topic.json", "aws-cloudwatch-metricstream.json", + "aws-dms-dataprovider.json", "aws-location-geofencecollection.json", "aws-ssm-parameter.json", "aws-apigatewayv2-apigatewaymanagedoverrides.json", @@ -2188,6 +2214,7 @@ "aws-sagemaker-monitoringschedule.json", "aws-iam-oidcprovider.json", "aws-lakeformation-tag.json", + "aws-ce-anomalymonitor.json", "aws-servicecatalogappregistry-resourceassociation.json", "aws-timestream-table.json", "aws-ec2-vpngateway.json", @@ -2282,8 +2309,8 @@ "aws-elasticloadbalancingv2-listener.json", "aws-redshift-eventsubscription.json", "aws-iotfleethub-application.json", - "aws-connect-user.json", "aws-ssmcontacts-contactchannel.json", + "aws-memorydb-acl.json", "aws-cloudformation-waitconditionhandle.json", "aws-pinpoint-smstemplate.json", "aws-globalaccelerator-accelerator.json", diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-appsync-graphqlapi.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-appsync-graphqlapi.json new file mode 100644 index 0000000000..077c3fd5af --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-appsync-graphqlapi.json @@ -0,0 +1,222 @@ +{ + "additionalProperties": false, + "definitions": { + "AdditionalAuthenticationProvider": { + "additionalProperties": false, + "properties": { + "AuthenticationType": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "UserPoolConfig": { + "$ref": "#/definitions/CognitoUserPoolConfig" + } + }, + "required": [ + "AuthenticationType" + ], + "type": "object" + }, + "CognitoUserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "LambdaAuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsRoleArn": { + "type": "string" + }, + "ExcludeVerboseContent": { + "type": "boolean" + }, + "FieldLogLevel": { + "type": "string" + } + }, + "type": "object" + }, + "OpenIDConnectConfig": { + "additionalProperties": false, + "properties": { + "AuthTTL": { + "type": "number" + }, + "ClientId": { + "type": "string" + }, + "IatTTL": { + "type": "number" + }, + "Issuer": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "UserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "DefaultAction": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AppSync::GraphQLApi", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalAuthenticationProviders": { + "items": { + "$ref": "#/definitions/AdditionalAuthenticationProvider" + }, + "type": "array", + "uniqueItems": false + }, + "ApiId": { + "type": "string" + }, + "ApiType": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "AuthenticationType": { + "enum": [ + "API_KEY", + "AWS_IAM", + "AMAZON_COGNITO_USER_POOLS", + "OPENID_CONNECT", + "AWS_LAMBDA" + ], + "type": "string" + }, + "GraphQLDns": { + "type": "string" + }, + "GraphQLEndpointArn": { + "type": "string" + }, + "GraphQLUrl": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "LogConfig": { + "$ref": "#/definitions/LogConfig" + }, + "MergedApiExecutionRoleArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "OwnerContact": { + "type": "string" + }, + "RealtimeDns": { + "type": "string" + }, + "RealtimeUrl": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UserPoolConfig": { + "$ref": "#/definitions/UserPoolConfig" + }, + "Visibility": { + "type": "string" + }, + "XrayEnabled": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/ApiId", + "/properties/GraphQLEndpointArn", + "/properties/Id", + "/properties/GraphQLDns", + "/properties/GraphQLUrl", + "/properties/RealtimeDns", + "/properties/RealtimeUrl", + "/properties/Arn" + ], + "required": [ + "Name", + "AuthenticationType" + ], + "typeName": "AWS::AppSync::GraphQLApi" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-cleanrooms-collaboration.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-cleanrooms-collaboration.json deleted file mode 100644 index 3c147bd325..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-cleanrooms-collaboration.json +++ /dev/null @@ -1,240 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CreatorDisplayName", - "/properties/CreatorMemberAbilities", - "/properties/DataEncryptionMetadata", - "/properties/QueryLogStatus", - "/properties/Members" - ], - "definitions": { - "CollaborationQueryLogStatus": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "DataEncryptionMetadata": { - "additionalProperties": false, - "properties": { - "AllowCleartext": { - "type": "boolean" - }, - "AllowDuplicates": { - "type": "boolean" - }, - "AllowJoinsOnColumnsWithDifferentNames": { - "type": "boolean" - }, - "PreserveNulls": { - "type": "boolean" - } - }, - "required": [ - "AllowCleartext", - "AllowDuplicates", - "AllowJoinsOnColumnsWithDifferentNames", - "PreserveNulls" - ], - "type": "object" - }, - "MemberAbilities": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/MemberAbility" - }, - "type": "array", - "uniqueItems": true - }, - "MemberAbility": { - "enum": [ - "CAN_QUERY", - "CAN_RECEIVE_RESULTS" - ], - "type": "string" - }, - "MemberSpecification": { - "additionalProperties": false, - "properties": { - "AccountId": { - "maxLength": 12, - "minLength": 12, - "pattern": "^\\d+$", - "type": "string" - }, - "DisplayName": { - "$ref": "#/definitions/Name" - }, - "MemberAbilities": { - "$ref": "#/definitions/MemberAbilities" - } - }, - "required": [ - "AccountId", - "DisplayName", - "MemberAbilities" - ], - "type": "object" - }, - "MemberStatus": { - "enum": [ - "INVITED", - "ACTIVE", - "LEFT", - "REMOVED" - ], - "type": "string" - }, - "Name": { - "maxLength": 100, - "minLength": 1, - "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$", - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Represents a collaboration between AWS accounts that allows for secure data collaboration", - "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html", - "handlers": { - "create": { - "permissions": [ - "cleanrooms:CreateCollaboration", - "cleanrooms:GetCollaboration", - "cleanrooms:ListMembers", - "cleanrooms:ListTagsForResource", - "cleanrooms:TagResource", - "cleanrooms:GetCollaboration", - "cleanrooms:ListCollaborations" - ] - }, - "delete": { - "permissions": [ - "cleanrooms:DeleteCollaboration", - "cleanrooms:GetCollaboration", - "cleanrooms:ListTagsForResource", - "cleanrooms:UntagResource", - "cleanrooms:ListMembers", - "cleanrooms:ListCollaborations" - ] - }, - "list": { - "permissions": [ - "cleanrooms:ListCollaborations" - ] - }, - "read": { - "permissions": [ - "cleanrooms:GetCollaboration", - "cleanrooms:ListMembers", - "cleanrooms:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "cleanrooms:UpdateCollaboration", - "cleanrooms:GetCollaboration", - "cleanrooms:ListMembers", - "cleanrooms:ListTagsForResource", - "cleanrooms:TagResource", - "cleanrooms:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CollaborationIdentifier" - ], - "properties": { - "Arn": { - "maxLength": 100, - "type": "string" - }, - "CollaborationIdentifier": { - "maxLength": 36, - "minLength": 36, - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", - "type": "string" - }, - "CreatorDisplayName": { - "$ref": "#/definitions/Name" - }, - "CreatorMemberAbilities": { - "$ref": "#/definitions/MemberAbilities" - }, - "DataEncryptionMetadata": { - "$ref": "#/definitions/DataEncryptionMetadata" - }, - "Description": { - "maxLength": 255, - "minLength": 1, - "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", - "type": "string" - }, - "Members": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/MemberSpecification" - }, - "maxItems": 9, - "minItems": 0, - "type": "array" - }, - "Name": { - "maxLength": 100, - "minLength": 1, - "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$", - "type": "string" - }, - "QueryLogStatus": { - "$ref": "#/definitions/CollaborationQueryLogStatus" - }, - "Tags": { - "description": "An arbitrary set of tags (key-value pairs) for this cleanrooms collaboration.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CollaborationIdentifier" - ], - "required": [ - "CreatorDisplayName", - "CreatorMemberAbilities", - "Members", - "Name", - "Description", - "QueryLogStatus" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::CleanRooms::Collaboration" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-cleanrooms-membership.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-cleanrooms-membership.json deleted file mode 100644 index 35bb82ba7c..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-cleanrooms-membership.json +++ /dev/null @@ -1,232 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CollaborationIdentifier" - ], - "definitions": { - "MembershipProtectedQueryOutputConfiguration": { - "additionalProperties": false, - "properties": { - "S3": { - "$ref": "#/definitions/ProtectedQueryS3OutputConfiguration" - } - }, - "required": [ - "S3" - ], - "type": "object" - }, - "MembershipProtectedQueryResultConfiguration": { - "additionalProperties": false, - "properties": { - "OutputConfiguration": { - "$ref": "#/definitions/MembershipProtectedQueryOutputConfiguration" - }, - "RoleArn": { - "maxLength": 512, - "minLength": 32, - "type": "string" - } - }, - "required": [ - "OutputConfiguration" - ], - "type": "object" - }, - "MembershipQueryLogStatus": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "MembershipStatus": { - "enum": [ - "ACTIVE", - "REMOVED", - "COLLABORATION_DELETED" - ], - "type": "string" - }, - "ProtectedQueryS3OutputConfiguration": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "type": "string" - }, - "KeyPrefix": { - "type": "string" - }, - "ResultFormat": { - "$ref": "#/definitions/ResultFormat" - } - }, - "required": [ - "ResultFormat", - "Bucket" - ], - "type": "object" - }, - "ResultFormat": { - "enum": [ - "CSV", - "PARQUET" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Represents an AWS account that is a part of a collaboration", - "handlers": { - "create": { - "permissions": [ - "cleanrooms:CreateMembership", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:PutResourcePolicy", - "logs:CreateLogGroup", - "cleanrooms:GetMembership", - "cleanrooms:ListTagsForResource", - "cleanrooms:TagResource", - "cleanrooms:ListMemberships", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "cleanrooms:DeleteMembership", - "cleanrooms:GetMembership", - "cleanrooms:ListMemberships", - "cleanrooms:ListTagsForResource", - "logs:ListLogDeliveries", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery" - ] - }, - "list": { - "permissions": [ - "cleanrooms:ListMemberships" - ] - }, - "read": { - "permissions": [ - "cleanrooms:GetMembership", - "cleanrooms:ListTagsForResource", - "logs:ListLogDeliveries", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery" - ] - }, - "update": { - "permissions": [ - "cleanrooms:UpdateMembership", - "cleanrooms:GetMembership", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:PutResourcePolicy", - "logs:CreateLogGroup", - "cleanrooms:ListTagsForResource", - "cleanrooms:TagResource", - "cleanrooms:UntagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/MembershipIdentifier" - ], - "properties": { - "Arn": { - "maxLength": 100, - "type": "string" - }, - "CollaborationArn": { - "maxLength": 100, - "type": "string" - }, - "CollaborationCreatorAccountId": { - "maxLength": 12, - "minLength": 12, - "pattern": "^\\d+$", - "type": "string" - }, - "CollaborationIdentifier": { - "maxLength": 36, - "minLength": 36, - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", - "type": "string" - }, - "DefaultResultConfiguration": { - "$ref": "#/definitions/MembershipProtectedQueryResultConfiguration" - }, - "MembershipIdentifier": { - "maxLength": 36, - "minLength": 36, - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", - "type": "string" - }, - "QueryLogStatus": { - "$ref": "#/definitions/MembershipQueryLogStatus" - }, - "Tags": { - "description": "An arbitrary set of tags (key-value pairs) for this cleanrooms membership.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CollaborationArn", - "/properties/CollaborationCreatorAccountId", - "/properties/MembershipIdentifier" - ], - "required": [ - "CollaborationIdentifier", - "QueryLogStatus" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::CleanRooms::Membership" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-codedeploy-deploymentgroup.json new file mode 100644 index 0000000000..208990a115 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-codedeploy-deploymentgroup.json @@ -0,0 +1,523 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentGroupName", + "/properties/ApplicationName" + ], + "definitions": { + "Alarm": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AlarmConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/Alarm" + }, + "type": "array", + "uniqueItems": true + }, + "Enabled": { + "type": "boolean" + }, + "IgnorePollAlarmFailure": { + "type": "boolean" + } + }, + "type": "object" + }, + "AutoRollbackConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Events": { + "items": { + "enum": [ + "DEPLOYMENT_FAILURE", + "DEPLOYMENT_STOP_ON_ALARM", + "DEPLOYMENT_STOP_ON_REQUEST" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "BlueGreenDeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "DeploymentReadyOption": { + "$ref": "#/definitions/DeploymentReadyOption" + }, + "GreenFleetProvisioningOption": { + "$ref": "#/definitions/GreenFleetProvisioningOption" + }, + "TerminateBlueInstancesOnDeploymentSuccess": { + "$ref": "#/definitions/BlueInstanceTerminationOption" + } + }, + "type": "object" + }, + "BlueInstanceTerminationOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "TerminationWaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "Deployment": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "IgnoreApplicationStopFailures": { + "type": "boolean" + }, + "Revision": { + "$ref": "#/definitions/RevisionLocation" + } + }, + "required": [ + "Revision" + ], + "type": "object" + }, + "DeploymentReadyOption": { + "additionalProperties": false, + "properties": { + "ActionOnTimeout": { + "type": "string" + }, + "WaitTimeInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentStyle": { + "additionalProperties": false, + "properties": { + "DeploymentOption": { + "enum": [ + "WITH_TRAFFIC_CONTROL", + "WITHOUT_TRAFFIC_CONTROL" + ], + "type": "string" + }, + "DeploymentType": { + "enum": [ + "IN_PLACE", + "BLUE_GREEN" + ], + "type": "string" + } + }, + "type": "object" + }, + "EC2TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "EC2TagSet": { + "additionalProperties": false, + "properties": { + "Ec2TagSetList": { + "items": { + "$ref": "#/definitions/EC2TagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EC2TagSetListObject": { + "additionalProperties": false, + "properties": { + "Ec2TagGroup": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ECSService": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + } + }, + "required": [ + "ServiceName", + "ClusterName" + ], + "type": "object" + }, + "ELBInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "GitHubLocation": { + "additionalProperties": false, + "properties": { + "CommitId": { + "type": "string" + }, + "Repository": { + "type": "string" + } + }, + "required": [ + "Repository", + "CommitId" + ], + "type": "object" + }, + "GreenFleetProvisioningOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "type": "object" + }, + "LoadBalancerInfo": { + "additionalProperties": false, + "properties": { + "ElbInfoList": { + "items": { + "$ref": "#/definitions/ELBInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupPairInfoList": { + "items": { + "$ref": "#/definitions/TargetGroupPairInfo" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSet": { + "additionalProperties": false, + "properties": { + "OnPremisesTagSetList": { + "items": { + "$ref": "#/definitions/OnPremisesTagSetListObject" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "OnPremisesTagSetListObject": { + "additionalProperties": false, + "properties": { + "OnPremisesTagGroup": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "RevisionLocation": { + "additionalProperties": false, + "properties": { + "GitHubLocation": { + "$ref": "#/definitions/GitHubLocation" + }, + "RevisionType": { + "type": "string" + }, + "S3Location": { + "$ref": "#/definitions/S3Location" + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "BundleType": { + "type": "string" + }, + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "TargetGroupPairInfo": { + "additionalProperties": false, + "properties": { + "ProdTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + }, + "TargetGroups": { + "items": { + "$ref": "#/definitions/TargetGroupInfo" + }, + "type": "array", + "uniqueItems": true + }, + "TestTrafficRoute": { + "$ref": "#/definitions/TrafficRoute" + } + }, + "type": "object" + }, + "TrafficRoute": { + "additionalProperties": false, + "properties": { + "ListenerArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerEvents": { + "items": { + "enum": [ + "DeploymentStart", + "DeploymentSuccess", + "DeploymentFailure", + "DeploymentStop", + "DeploymentRollback", + "DeploymentReady", + "InstanceStart", + "InstanceSuccess", + "InstanceFailure", + "InstanceReady" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "TriggerName": { + "type": "string" + }, + "TriggerTargetArn": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AlarmConfiguration": { + "$ref": "#/definitions/AlarmConfiguration" + }, + "ApplicationName": { + "type": "string" + }, + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AutoRollbackConfiguration" + }, + "AutoScalingGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BlueGreenDeploymentConfiguration": { + "$ref": "#/definitions/BlueGreenDeploymentConfiguration" + }, + "Deployment": { + "$ref": "#/definitions/Deployment" + }, + "DeploymentConfigName": { + "type": "string" + }, + "DeploymentGroupName": { + "type": "string" + }, + "DeploymentStyle": { + "$ref": "#/definitions/DeploymentStyle" + }, + "ECSServices": { + "items": { + "$ref": "#/definitions/ECSService" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagFilters": { + "items": { + "$ref": "#/definitions/EC2TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "Ec2TagSet": { + "$ref": "#/definitions/EC2TagSet" + }, + "Id": { + "type": "string" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/LoadBalancerInfo" + }, + "OnPremisesInstanceTagFilters": { + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "OnPremisesTagSet": { + "$ref": "#/definitions/OnPremisesTagSet" + }, + "OutdatedInstancesStrategy": { + "type": "string" + }, + "ServiceRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TerminationHookEnabled": { + "type": "boolean" + }, + "TriggerConfigurations": { + "items": { + "$ref": "#/definitions/TriggerConfig" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "ServiceRoleArn" + ], + "typeName": "AWS::CodeDeploy::DeploymentGroup" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-connect-rule.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-connect-rule.json new file mode 100644 index 0000000000..b5ff10cf1e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-connect-rule.json @@ -0,0 +1,509 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TriggerEventSource", + "/properties/InstanceArn" + ], + "definitions": { + "Actions": { + "additionalProperties": false, + "description": "The list of actions that will be executed when a rule is triggered.", + "properties": { + "AssignContactCategoryActions": { + "$ref": "#/definitions/AssignContactCategoryActions" + }, + "CreateCaseActions": { + "$ref": "#/definitions/CreateCaseActions" + }, + "EndAssociatedTaskActions": { + "$ref": "#/definitions/EndAssociatedTasksActions" + }, + "EventBridgeActions": { + "$ref": "#/definitions/EventBridgeActions" + }, + "SendNotificationActions": { + "$ref": "#/definitions/SendNotificationActions" + }, + "TaskActions": { + "$ref": "#/definitions/TaskActions" + }, + "UpdateCaseActions": { + "$ref": "#/definitions/UpdateCaseActions" + } + }, + "type": "object" + }, + "AssignContactCategoryAction": { + "description": "The definition for assigning contact category action.", + "type": "object" + }, + "AssignContactCategoryActions": { + "description": "This action will assign contact category when a rule is triggered.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssignContactCategoryAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "CreateCaseAction": { + "additionalProperties": false, + "description": "The definition for create case action.", + "properties": { + "Fields": { + "$ref": "#/definitions/Fields" + }, + "TemplateId": { + "description": "The Id of template.", + "maxLength": 500, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Fields", + "TemplateId" + ], + "type": "object" + }, + "CreateCaseActions": { + "description": "This action will create a case when a rule is triggered.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CreateCaseAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "EndAssociatedTasksAction": { + "description": "The definition for ending associated task action.", + "type": "object" + }, + "EndAssociatedTasksActions": { + "description": "This action will end associated tasks when a rule is triggered.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EndAssociatedTasksAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "EventBridgeAction": { + "additionalProperties": false, + "description": "The definition for event bridge action.", + "properties": { + "Name": { + "description": "The name of the event bridge action.", + "pattern": "^[a-zA-Z0-9._-]{1,100}$", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "EventBridgeActions": { + "description": "This action will send event bridge notification when a rule is triggered.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EventBridgeAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Field": { + "additionalProperties": false, + "description": "The field of the case.", + "properties": { + "Id": { + "description": "The Id of the field", + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "Value": { + "$ref": "#/definitions/FieldValue" + } + }, + "required": [ + "Id", + "Value" + ], + "type": "object" + }, + "FieldValue": { + "additionalProperties": false, + "description": "The value of the field.", + "properties": { + "BooleanValue": { + "type": "boolean" + }, + "DoubleValue": { + "type": "number" + }, + "EmptyValue": { + "type": "object" + }, + "StringValue": { + "type": "string" + } + }, + "type": "object" + }, + "Fields": { + "description": "An array of case fields", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Field" + }, + "maxItems": 100, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "NotificationRecipientType": { + "additionalProperties": false, + "description": "The type of notification recipient.", + "properties": { + "UserArns": { + "description": "The list of recipients by user arns.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/UserArn" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "UserTags": { + "additionalProperties": false, + "description": "The collection of recipients who are identified by user tags", + "patternProperties": { + "^(?=.{1,128}$).+$": { + "type": "string" + } + } + } + }, + "type": "object" + }, + "Reference": { + "additionalProperties": false, + "description": "A contact reference.", + "properties": { + "Type": { + "enum": [ + "URL", + "ATTACHMENT", + "NUMBER", + "STRING", + "DATE", + "EMAIL" + ], + "type": "string" + }, + "Value": { + "pattern": "^(/|https:)", + "type": "string" + } + }, + "required": [ + "Value", + "Type" + ], + "type": "object" + }, + "RuleTriggerEventSource": { + "additionalProperties": false, + "description": "The event source that will trigger the rule.", + "properties": { + "EventSourceName": { + "description": "The name of event source.", + "enum": [ + "OnContactEvaluationSubmit", + "OnPostCallAnalysisAvailable", + "OnRealTimeCallAnalysisAvailable", + "OnRealTimeChatAnalysisAvailable", + "OnPostChatAnalysisAvailable", + "OnZendeskTicketCreate", + "OnZendeskTicketStatusUpdate", + "OnSalesforceCaseCreate", + "OnMetricDataUpdate", + "OnCaseCreate", + "OnCasesUpdate" + ], + "type": "string" + }, + "IntegrationAssociationArn": { + "description": "The Amazon Resource Name (ARN) for the AppIntegration association.", + "pattern": "^$|arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/integration-association/[-a-zA-Z0-9]*$", + "type": "string" + } + }, + "required": [ + "EventSourceName" + ], + "type": "object" + }, + "SendNotificationAction": { + "additionalProperties": false, + "description": "The definition for sending notification action.", + "properties": { + "Content": { + "description": "The content of notification.", + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "ContentType": { + "description": "The type of content.", + "enum": [ + "PLAIN_TEXT" + ], + "type": "string" + }, + "DeliveryMethod": { + "description": "The means of delivery.", + "enum": [ + "EMAIL" + ], + "type": "string" + }, + "Recipient": { + "$ref": "#/definitions/NotificationRecipientType" + }, + "Subject": { + "description": "The subject of notification.", + "maxLength": 200, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DeliveryMethod", + "Content", + "Recipient", + "ContentType" + ], + "type": "object" + }, + "SendNotificationActions": { + "description": "The action will send notification when a rule is triggered.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SendNotificationAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that's 1 to 256 characters in length.", + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "TaskAction": { + "additionalProperties": false, + "description": "The definition of task action.", + "properties": { + "ContactFlowArn": { + "description": "The Amazon Resource Name (ARN) of the contact flow.", + "pattern": "^$|arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/contact-flow/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Description": { + "description": "The description which appears in the agent's Contact Control Panel (CCP).", + "maxLength": 4096, + "minLength": 0, + "type": "string" + }, + "Name": { + "description": "The name which appears in the agent's Contact Control Panel (CCP).", + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "References": { + "additionalProperties": false, + "description": "A formatted URL that is shown to an agent in the Contact Control Panel (CCP).", + "patternProperties": { + "^(?=.{1,4096}$).+$": { + "$ref": "#/definitions/Reference" + } + } + } + }, + "required": [ + "Name", + "ContactFlowArn" + ], + "type": "object" + }, + "TaskActions": { + "description": "This action will generate a task when a rule is triggered.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TaskAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "UpdateCaseAction": { + "additionalProperties": false, + "description": "The definition for update case action.", + "properties": { + "Fields": { + "$ref": "#/definitions/Fields" + } + }, + "required": [ + "Fields" + ], + "type": "object" + }, + "UpdateCaseActions": { + "description": "This action will update a case when a rule is triggered.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/UpdateCaseAction" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "UserArn": { + "description": "The Amazon Resource Name (ARN) of the user.", + "pattern": "^$|arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent/[-a-zA-Z0-9]*$", + "type": "string" + } + }, + "description": "Resource Type definition for AWS:Connect::Rule", + "handlers": { + "create": { + "permissions": [ + "connect:CreateRule" + ] + }, + "delete": { + "permissions": [ + "connect:DeleteRule", + "connect:UntagResource" + ] + }, + "read": { + "permissions": [ + "connect:DescribeRule" + ] + }, + "update": { + "permissions": [ + "connect:UpdateRule", + "connect:TagResource", + "connect:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "properties": { + "Actions": { + "$ref": "#/definitions/Actions", + "description": "The list of actions that will be executed when a rule is triggered." + }, + "Function": { + "description": "The conditions of a rule.", + "type": "string" + }, + "InstanceArn": { + "description": "The Amazon Resource Name (ARN) of the instance.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Name": { + "description": "The name of the rule.", + "pattern": "^[a-zA-Z0-9._-]{1,200}$", + "type": "string" + }, + "PublishStatus": { + "description": "The publish status of a rule, either draft or published.", + "enum": [ + "DRAFT", + "PUBLISHED" + ], + "type": "string" + }, + "RuleArn": { + "description": "The Amazon Resource Name (ARN) of the rule.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/rule/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Tags": { + "description": "One or more tags.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "TriggerEventSource": { + "$ref": "#/definitions/RuleTriggerEventSource", + "description": "The event source that triggers the rule." + } + }, + "readOnlyProperties": [ + "/properties/RuleArn" + ], + "replacementStrategy": "delete_then_create", + "required": [ + "Name", + "InstanceArn", + "TriggerEventSource", + "Function", + "Actions", + "PublishStatus" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": false, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Connect::Rule" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-connect-user.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-connect-user.json new file mode 100644 index 0000000000..b949608f4f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-connect-user.json @@ -0,0 +1,241 @@ +{ + "additionalProperties": false, + "definitions": { + "AfterContactWorkTimeLimit": { + "description": "The After Call Work (ACW) timeout setting, in seconds.", + "minimum": 0, + "type": "integer" + }, + "AutoAccept": { + "description": "The Auto accept setting.", + "type": "boolean" + }, + "DeskPhoneNumber": { + "description": "The phone number for the user's desk phone.", + "type": "string" + }, + "Email": { + "description": "The email address. If you are using SAML for identity management and include this parameter, an error is returned.", + "type": "string" + }, + "FirstName": { + "description": "The first name. This is required if you are using Amazon Connect or SAML for identity management.", + "type": "string" + }, + "LastName": { + "description": "The last name. This is required if you are using Amazon Connect or SAML for identity management.", + "type": "string" + }, + "Mobile": { + "description": "The mobile phone number.", + "pattern": "^\\+[1-9]\\d{1,14}$", + "type": "string" + }, + "PhoneType": { + "description": "The phone type.", + "enum": [ + "SOFT_PHONE", + "DESK_PHONE" + ], + "type": "string" + }, + "SecondaryEmail": { + "description": "The secondary email address. If you provide a secondary email, the user receives email notifications -- other than password reset notifications -- to this email address instead of to their primary email address.", + "pattern": "(?=^.{0,265}$)[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,63}", + "type": "string" + }, + "SecurityProfileArn": { + "description": "The identifier of the security profile for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/security-profile/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is maximum of 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UserIdentityInfo": { + "additionalProperties": false, + "description": "Contains information about the identity of a user.", + "properties": { + "Email": { + "$ref": "#/definitions/Email" + }, + "FirstName": { + "$ref": "#/definitions/FirstName" + }, + "LastName": { + "$ref": "#/definitions/LastName" + }, + "Mobile": { + "$ref": "#/definitions/Mobile" + }, + "SecondaryEmail": { + "$ref": "#/definitions/SecondaryEmail" + } + }, + "type": "object" + }, + "UserPhoneConfig": { + "additionalProperties": false, + "description": "Contains information about the phone configuration settings for a user.", + "properties": { + "AfterContactWorkTimeLimit": { + "$ref": "#/definitions/AfterContactWorkTimeLimit" + }, + "AutoAccept": { + "$ref": "#/definitions/AutoAccept" + }, + "DeskPhoneNumber": { + "$ref": "#/definitions/DeskPhoneNumber" + }, + "PhoneType": { + "$ref": "#/definitions/PhoneType" + } + }, + "required": [ + "PhoneType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Connect::User", + "handlers": { + "create": { + "permissions": [ + "connect:CreateUser", + "connect:TagResource", + "connect:AssociateUserProficiencies" + ] + }, + "delete": { + "permissions": [ + "connect:DeleteUser", + "connect:UntagResource" + ] + }, + "read": { + "permissions": [ + "connect:DescribeUser", + "connect:ListUserProficiencies" + ] + }, + "update": { + "permissions": [ + "connect:UpdateUserIdentityInfo", + "connect:UpdateUserPhoneConfig", + "connect:UpdateUserRoutingProfile", + "connect:UpdateUserSecurityProfiles", + "connect:UpdateUserHierarchy", + "connect:TagResource", + "connect:UntagResource", + "connect:AssociateUserProficiencies", + "connect:DisassociateUserProficiencies", + "connect:UpdateUserProficiencies" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserArn" + ], + "properties": { + "DirectoryUserId": { + "description": "The identifier of the user account in the directory used for identity management.", + "type": "string" + }, + "HierarchyGroupArn": { + "description": "The identifier of the hierarchy group for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group/[-a-zA-Z0-9]*$", + "type": "string" + }, + "IdentityInfo": { + "$ref": "#/definitions/UserIdentityInfo", + "description": "The information about the identity of the user." + }, + "InstanceArn": { + "description": "The identifier of the Amazon Connect instance.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Password": { + "description": "The password for the user account. A password is required if you are using Amazon Connect for identity management. Otherwise, it is an error to include a password.", + "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d\\S]{8,64}$", + "type": "string" + }, + "PhoneConfig": { + "$ref": "#/definitions/UserPhoneConfig", + "description": "The phone settings for the user." + }, + "RoutingProfileArn": { + "description": "The identifier of the routing profile for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/routing-profile/[-a-zA-Z0-9]*$", + "type": "string" + }, + "SecurityProfileArns": { + "description": "One or more security profile arns for the user", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SecurityProfileArn" + }, + "maxItems": 10, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "description": "One or more tags.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserArn": { + "description": "The Amazon Resource Name (ARN) for the user.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Username": { + "description": "The user name for the account.", + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\_\\-\\.\\@]+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/UserArn" + ], + "required": [ + "InstanceArn", + "PhoneConfig", + "RoutingProfileArn", + "SecurityProfileArns", + "Username" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "typeName": "AWS::Connect::User", + "writeOnlyProperties": [ + "/properties/Password" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-devicefarm-project.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-devicefarm-project.json index afba091381..0ec8480c80 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-devicefarm-project.json +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-devicefarm-project.json @@ -73,12 +73,22 @@ "create": { "permissions": [ "devicefarm:CreateProject", - "devicefarm:TagResource" + "devicefarm:TagResource", + "devicefarm:GetProject", + "devicefarm:ListTagsForResource", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups", + "ec2:CreateNetworkInterface", + "iam:CreateServiceLinkedRole" ] }, "delete": { "permissions": [ - "devicefarm:DeleteProject" + "devicefarm:DeleteProject", + "devicefarm:UntagResource", + "devicefarm:GetProject", + "devicefarm:ListTagsForResource" ] }, "list": { @@ -97,7 +107,13 @@ "devicefarm:UpdateProject", "devicefarm:TagResource", "devicefarm:UntagResource", - "devicefarm:ListTagsForResource" + "devicefarm:ListTagsForResource", + "devicefarm:GetProject", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups", + "ec2:CreateNetworkInterface", + "iam:CreateServiceLinkedRole" ] } }, diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-devicefarm-vpceconfiguration.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-devicefarm-vpceconfiguration.json index 77f61b98e7..825128a689 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-devicefarm-vpceconfiguration.json +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-devicefarm-vpceconfiguration.json @@ -28,13 +28,17 @@ "create": { "permissions": [ "devicefarm:CreateVPCEConfiguration", - "devicefarm:TagResource" + "devicefarm:TagResource", + "devicefarm:GetVPCEConfiguration", + "devicefarm:ListTagsForResource" ] }, "delete": { "permissions": [ "devicefarm:DeleteVPCEConfiguration", - "devicefarm:UntagResource" + "devicefarm:UntagResource", + "devicefarm:ListTagsForResource", + "devicefarm:GetVPCEConfiguration" ] }, "list": { @@ -51,6 +55,7 @@ "update": { "permissions": [ "devicefarm:UpdateVPCEConfiguration", + "devicefarm:GetVPCEConfiguration", "devicefarm:TagResource", "devicefarm:UntagResource", "devicefarm:ListTagsForResource" diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-dms-replicationconfig.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-dms-replicationconfig.json deleted file mode 100644 index 15358362ce..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-dms-replicationconfig.json +++ /dev/null @@ -1,194 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/ReplicationConfigIdentifier" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ResourceIdentifier" - ], - "definitions": { - "ComputeConfig": { - "additionalProperties": false, - "description": "Configuration parameters for provisioning a AWS DMS Serverless replication", - "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, - "description": "

The key or keys of the key-value pairs for the resource tag or tags assigned to the\n resource.

", - "properties": { - "Key": { - "description": "

Tag key.

", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "

Tag value.

", - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "A replication configuration that you later provide to configure and start a AWS DMS Serverless replication", - "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:RemoveTagsToResource", - "dms:ListTagsForResource", - "iam:CreateServiceLinkedRole", - "iam:AttachRolePolicy", - "iam:PutRolePolicy", - "iam:UpdateRoleDescription" - ] - } - }, - "primaryIdentifier": [ - "/properties/ReplicationConfigArn" - ], - "properties": { - "ComputeConfig": { - "$ref": "#/definitions/ComputeConfig" - }, - "ReplicationConfigArn": { - "description": "The Amazon Resource Name (ARN) of the Replication Config", - "type": "string" - }, - "ReplicationConfigIdentifier": { - "description": "A unique identifier of replication configuration", - "type": "string" - }, - "ReplicationSettings": { - "description": "JSON settings for Servereless replications that are provisioned using this replication configuration", - "type": "object" - }, - "ReplicationType": { - "description": "The type of AWS DMS Serverless replication to provision using this replication configuration", - "enum": [ - "full-load", - "full-load-and-cdc", - "cdc" - ], - "type": "string" - }, - "ResourceIdentifier": { - "description": "A unique value or name that you get set for a given resource that can be used to construct an Amazon Resource Name (ARN) for that resource", - "type": "string" - }, - "SourceEndpointArn": { - "description": "The Amazon Resource Name (ARN) of the source endpoint for this AWS DMS Serverless replication configuration", - "type": "string" - }, - "SupplementalSettings": { - "description": "JSON settings for specifying supplemental data", - "type": "object" - }, - "TableMappings": { - "description": "JSON table mappings for AWS DMS Serverless replications that are provisioned using this replication configuration", - "type": "object" - }, - "Tags": { - "description": "

Contains a map of the key-value pairs for the resource tag or tags assigned to the dataset.

", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 1, - "type": "array" - }, - "TargetEndpointArn": { - "description": "The Amazon Resource Name (ARN) of the target endpoint for this AWS DMS Serverless replication configuration", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/ReplicationConfigArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-dms", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::DMS::ReplicationConfig" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-ec2-instance.json new file mode 100644 index 0000000000..54d5bdcd0b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-ec2-instance.json @@ -0,0 +1,665 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "oneOf": [ + { + "properties": { + "LaunchTemplate": false + }, + "required": [ + "ImageId" + ], + "type": "object" + }, + { + "properties": { + "ImageId": false + }, + "required": [ + "LaunchTemplate" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['ImageId', 'LaunchTemplate']" + } + ], + "createOnlyProperties": [ + "/properties/Ipv6Addresses", + "/properties/ElasticGpuSpecifications", + "/properties/PlacementGroupName", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/CpuOptions", + "/properties/PrivateIpAddress", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/LicenseSpecifications", + "/properties/KeyName", + "/properties/NetworkInterfaces", + "/properties/SubnetId", + "/properties/AvailabilityZone", + "/properties/LaunchTemplate", + "/properties/SecurityGroups", + "/properties/Ipv6AddressCount" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "oneOf": [ + { + "properties": { + "Ebs": false, + "NoDevice": false + }, + "required": [ + "VirtualName" + ], + "type": "object" + }, + { + "properties": { + "NoDevice": false, + "VirtualName": false + }, + "required": [ + "Ebs" + ], + "type": "object" + }, + { + "properties": { + "Ebs": false, + "VirtualName": false + }, + "required": [ + "NoDevice" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['VirtualName', 'Ebs', 'NoDevice']", + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "type": "object" + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "type": "boolean" + } + }, + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependencies": { + "NetworkInterfaces": { + "properties": { + "SubnetId": false + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::Instance", + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "$ref": "#/definitions/CpuOptions" + }, + "CreditSpecification": { + "$ref": "#/definitions/CreditSpecification" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "$ref": "#/definitions/EnclaveOptions" + }, + "HibernationOptions": { + "$ref": "#/definitions/HibernationOptions" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnRegionSchema": [ + "aws_ec2_instance/instancetype_enum" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification" + }, + "LicenseSpecifications": { + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PublicIp", + "/properties/PublicDnsName", + "/properties/PrivateDnsName", + "/properties/PrivateIp" + ], + "typeName": "AWS::EC2::Instance" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-ecs-clustercapacityproviderassociations.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-ecs-clustercapacityproviderassociations.json new file mode 100644 index 0000000000..1f0d902bba --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-ecs-clustercapacityproviderassociations.json @@ -0,0 +1,128 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster" + ], + "definitions": { + "CapacityProvider": { + "anyOf": [ + { + "enum": [ + "FARGATE", + "FARGATE_SPOT" + ], + "type": "string" + }, + { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + ], + "description": "If using ec2 auto-scaling, the name of the associated capacity provider. Otherwise FARGATE, FARGATE_SPOT.", + "type": "string" + }, + "CapacityProviderStrategy": { + "additionalProperties": false, + "properties": { + "Base": { + "maximum": 100000, + "minimum": 0, + "type": "integer" + }, + "CapacityProvider": { + "$ref": "#/definitions/CapacityProvider" + }, + "Weight": { + "maximum": 1000, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "CapacityProvider" + ], + "type": "object" + }, + "CapacityProviders": { + "description": "List of capacity providers to associate with the cluster", + "items": { + "$ref": "#/definitions/CapacityProvider" + }, + "type": "array", + "uniqueItems": true + }, + "Cluster": { + "description": "The name of the cluster", + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DefaultCapacityProviderStrategy": { + "description": "List of capacity providers to associate with the cluster", + "items": { + "$ref": "#/definitions/CapacityProviderStrategy" + }, + "type": "array" + } + }, + "description": "Associate a set of ECS Capacity Providers with a specified ECS Cluster", + "handlers": { + "create": { + "permissions": [ + "ecs:DescribeClusters", + "ecs:PutClusterCapacityProviders" + ] + }, + "delete": { + "permissions": [ + "ecs:PutClusterCapacityProviders", + "ecs:DescribeClusters" + ] + }, + "list": { + "permissions": [ + "ecs:DescribeClusters", + "ecs:ListClusters" + ] + }, + "read": { + "permissions": [ + "ecs:DescribeClusters" + ] + }, + "update": { + "permissions": [ + "ecs:DescribeClusters", + "ecs:PutClusterCapacityProviders" + ] + } + }, + "primaryIdentifier": [ + "/properties/Cluster" + ], + "properties": { + "CapacityProviders": { + "$ref": "#/definitions/CapacityProviders" + }, + "Cluster": { + "$ref": "#/definitions/Cluster" + }, + "DefaultCapacityProviderStrategy": { + "$ref": "#/definitions/DefaultCapacityProviderStrategy" + } + }, + "required": [ + "CapacityProviders", + "Cluster", + "DefaultCapacityProviderStrategy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::ECS::ClusterCapacityProviderAssociations" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-emr-cluster.json new file mode 100644 index 0000000000..7ce37fccb6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-emr-cluster.json @@ -0,0 +1,858 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Steps", + "/properties/EbsRootVolumeSize", + "/properties/SecurityConfiguration", + "/properties/ScaleDownBehavior", + "/properties/Configurations", + "/properties/ReleaseLabel", + "/properties/BootstrapActions", + "/properties/EbsRootVolumeIops", + "/properties/KerberosAttributes", + "/properties/ServiceRole", + "/properties/LogEncryptionKmsKeyId", + "/properties/Name", + "/properties/EbsRootVolumeThroughput", + "/properties/JobFlowRole", + "/properties/AdditionalInfo", + "/properties/LogUri", + "/properties/CustomAmiId", + "/properties/PlacementGroupConfigs", + "/properties/OSReleaseLabel", + "/properties/AutoScalingRole", + "/properties/Applications" + ], + "definitions": { + "Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ScalingRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/ScriptBootstrapActionConfig" + } + }, + "required": [ + "ScriptBootstrapAction", + "Name" + ], + "type": "object" + }, + "CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "EvaluationPeriods": { + "type": "integer" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "integer" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "ComparisonOperator", + "Period", + "Threshold" + ], + "type": "object" + }, + "ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "integer" + }, + "MaximumCoreCapacityUnits": { + "type": "integer" + }, + "MaximumOnDemandCapacityUnits": { + "type": "integer" + }, + "MinimumCapacityUnits": { + "type": "integer" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "UnitType", + "MaximumCapacityUnits", + "MinimumCapacityUnits" + ], + "type": "object" + }, + "Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "integer" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/EbsBlockDeviceConfig" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/KeyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/InstanceTypeConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchSpecifications": { + "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "integer" + }, + "TargetSpotCapacity": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/OnDemandProvisioningSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/SpotProvisioningSpecification" + } + }, + "type": "object" + }, + "InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/EbsConfiguration" + }, + "InstanceType": { + "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", + "type": "string" + }, + "WeightedCapacity": { + "type": "integer" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/InstanceFleetConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/InstanceGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/ComputeLimits" + } + }, + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "PlacementGroupConfig": { + "additionalProperties": false, + "properties": { + "InstanceRole": { + "type": "string" + }, + "PlacementStrategy": { + "type": "string" + } + }, + "required": [ + "InstanceRole" + ], + "type": "object" + }, + "PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/ScalingTrigger" + } + }, + "required": [ + "Action", + "Trigger", + "Name" + ], + "type": "object" + }, + "ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BlockDurationMinutes": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "integer" + } + }, + "required": [ + "TimeoutDurationMinutes", + "TimeoutAction" + ], + "type": "object" + }, + "StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "integer" + }, + "SizeInGB": { + "type": "integer" + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EMR::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/Application" + }, + "type": "array", + "uniqueItems": true + }, + "AutoScalingRole": { + "type": "string" + }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AutoTerminationPolicy" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/BootstrapActionConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Configurations": { + "items": { + "$ref": "#/definitions/Configuration" + }, + "type": "array", + "uniqueItems": true + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeIops": { + "type": "integer" + }, + "EbsRootVolumeSize": { + "type": "integer" + }, + "EbsRootVolumeThroughput": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Instances": { + "$ref": "#/definitions/JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/KerberosAttributes" + }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, + "LogUri": { + "type": "string" + }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/ManagedScalingPolicy" + }, + "MasterPublicDNS": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OSReleaseLabel": { + "type": "string" + }, + "PlacementGroupConfigs": { + "items": { + "$ref": "#/definitions/PlacementGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "StepConcurrencyLevel": { + "type": "integer" + }, + "Steps": { + "items": { + "$ref": "#/definitions/StepConfig" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/MasterPublicDNS" + ], + "required": [ + "Instances", + "ServiceRole", + "JobFlowRole", + "Name" + ], + "typeName": "AWS::EMR::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-eventschemas-discoverer.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-eventschemas-discoverer.json deleted file mode 100644 index c01fbeae42..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-eventschemas-discoverer.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SourceArn" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EventSchemas::Discoverer", - "handlers": { - "create": { - "permissions": [ - "schemas:CreateDiscoverer", - "schemas:DescribeDiscoverer", - "schemas:TagResource", - "events:PutRule", - "events:PutTargets", - "events:EnableRule", - "events:ListTargetsByRule", - "iam:CreateServiceLinkedRole" - ] - }, - "delete": { - "permissions": [ - "schemas:DescribeDiscoverer", - "schemas:DeleteDiscoverer", - "events:DeleteRule", - "events:DisableRule", - "events:RemoveTargets" - ] - }, - "list": { - "permissions": [ - "schemas:ListDiscoverers" - ] - }, - "read": { - "permissions": [ - "schemas:DescribeDiscoverer" - ] - }, - "update": { - "permissions": [ - "schemas:DescribeDiscoverer", - "schemas:UpdateDiscoverer", - "schemas:TagResource", - "schemas:UntagResource", - "schemas:ListTagsForResource", - "events:PutTargets", - "events:PutRule" - ] - } - }, - "primaryIdentifier": [ - "/properties/DiscovererArn" - ], - "properties": { - "CrossAccount": { - "default": true, - "description": "Defines whether event schemas from other accounts are discovered. Default is True.", - "type": "boolean" - }, - "Description": { - "description": "A description for the discoverer.", - "type": "string" - }, - "DiscovererArn": { - "description": "The ARN of the discoverer.", - "type": "string" - }, - "DiscovererId": { - "description": "The Id of the discoverer.", - "type": "string" - }, - "SourceArn": { - "description": "The ARN of the event bus.", - "type": "string" - }, - "State": { - "description": "Defines the current state of the discoverer.", - "type": "string" - }, - "Tags": { - "description": "Tags associated with the resource.", - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/DiscovererArn", - "/properties/DiscovererId", - "/properties/State" - ], - "required": [ - "SourceArn" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EventSchemas::Discoverer" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-fis-experimenttemplate.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-fis-experimenttemplate.json deleted file mode 100644 index 44471088cb..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-fis-experimenttemplate.json +++ /dev/null @@ -1,399 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Tags", - "/properties/ExperimentOptions/AccountTargeting" - ], - "definitions": { - "ActionId": { - "description": "The ID of the action.", - "maxLength": 64, - "type": "string" - }, - "ExperimentTemplateAction": { - "additionalProperties": false, - "description": "Specifies an action for the experiment template.", - "properties": { - "ActionId": { - "$ref": "#/definitions/ActionId" - }, - "Description": { - "$ref": "#/definitions/ExperimentTemplateActionItemDescription" - }, - "Parameters": { - "additionalProperties": false, - "description": "The parameters for the action, if applicable.", - "patternProperties": { - ".{1,64}": { - "$ref": "#/definitions/ExperimentTemplateActionItemParameter" - } - }, - "type": "object" - }, - "StartAfter": { - "$ref": "#/definitions/ExperimentTemplateActionItemStartAfterList" - }, - "Targets": { - "additionalProperties": false, - "description": "One or more targets for the action.", - "patternProperties": { - ".{1,64}": { - "$ref": "#/definitions/ExperimentTemplateActionItemTarget" - } - }, - "type": "object" - } - }, - "required": [ - "ActionId" - ], - "type": "object" - }, - "ExperimentTemplateActionItemDescription": { - "description": "A description for the action.", - "maxLength": 512, - "type": "string" - }, - "ExperimentTemplateActionItemParameter": { - "maxLength": 1024, - "type": "string" - }, - "ExperimentTemplateActionItemStartAfter": { - "maxLength": 64, - "type": "string" - }, - "ExperimentTemplateActionItemStartAfterList": { - "description": "The names of the actions that must be completed before the current action starts.", - "items": { - "$ref": "#/definitions/ExperimentTemplateActionItemStartAfter" - }, - "type": "array" - }, - "ExperimentTemplateActionItemTarget": { - "maxLength": 64, - "type": "string" - }, - "ExperimentTemplateActionMap": { - "additionalProperties": false, - "description": "The actions for the experiment.", - "patternProperties": { - "[\\S]{1,64}": { - "$ref": "#/definitions/ExperimentTemplateAction" - } - }, - "type": "object" - }, - "ExperimentTemplateDescription": { - "description": "A description for the experiment template.", - "maxLength": 512, - "type": "string" - }, - "ExperimentTemplateExperimentOptions": { - "additionalProperties": false, - "properties": { - "AccountTargeting": { - "description": "The account targeting setting for the experiment template.", - "enum": [ - "multi-account", - "single-account" - ], - "type": "string" - }, - "EmptyTargetResolutionMode": { - "description": "The target resolution failure mode for the experiment template.", - "enum": [ - "fail", - "skip" - ], - "type": "string" - } - }, - "type": "object" - }, - "ExperimentTemplateId": { - "type": "string" - }, - "ExperimentTemplateLogConfiguration": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsConfiguration": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - } - }, - "required": [ - "LogGroupArn" - ], - "type": "object" - }, - "LogSchemaVersion": { - "minimum": 1, - "type": "integer" - }, - "S3Configuration": { - "additionalProperties": false, - "properties": { - "BucketName": { - "maxLength": 63, - "minLength": 3, - "type": "string" - }, - "Prefix": { - "maxLength": 1024, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "BucketName" - ], - "type": "object" - } - }, - "required": [ - "LogSchemaVersion" - ], - "type": "object" - }, - "ExperimentTemplateStopCondition": { - "additionalProperties": false, - "properties": { - "Source": { - "$ref": "#/definitions/StopConditionSource" - }, - "Value": { - "$ref": "#/definitions/StopConditionValue" - } - }, - "required": [ - "Source" - ], - "type": "object" - }, - "ExperimentTemplateStopConditionList": { - "description": "One or more stop conditions.", - "items": { - "$ref": "#/definitions/ExperimentTemplateStopCondition" - }, - "type": "array" - }, - "ExperimentTemplateTarget": { - "additionalProperties": false, - "description": "Specifies a target for an experiment.", - "properties": { - "Filters": { - "$ref": "#/definitions/ExperimentTemplateTargetFilterList" - }, - "Parameters": { - "additionalProperties": false, - "patternProperties": { - ".{1,64}": { - "maxLength": 1024, - "type": "string" - } - }, - "type": "object" - }, - "ResourceArns": { - "$ref": "#/definitions/ResourceArnList" - }, - "ResourceTags": { - "additionalProperties": false, - "patternProperties": { - ".{1,128}": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - }, - "ResourceType": { - "$ref": "#/definitions/ResourceType" - }, - "SelectionMode": { - "$ref": "#/definitions/ExperimentTemplateTargetSelectionMode" - } - }, - "required": [ - "ResourceType", - "SelectionMode" - ], - "type": "object" - }, - "ExperimentTemplateTargetFilter": { - "additionalProperties": false, - "description": "Describes a filter used for the target resource input in an experiment template.", - "properties": { - "Path": { - "$ref": "#/definitions/ExperimentTemplateTargetFilterPath" - }, - "Values": { - "$ref": "#/definitions/ExperimentTemplateTargetFilterValues" - } - }, - "required": [ - "Path", - "Values" - ], - "type": "object" - }, - "ExperimentTemplateTargetFilterList": { - "items": { - "$ref": "#/definitions/ExperimentTemplateTargetFilter" - }, - "type": "array" - }, - "ExperimentTemplateTargetFilterPath": { - "description": "The attribute path for the filter.", - "maxLength": 256, - "type": "string" - }, - "ExperimentTemplateTargetFilterValue": { - "maxLength": 128, - "type": "string" - }, - "ExperimentTemplateTargetFilterValues": { - "description": "The attribute values for the filter.", - "items": { - "$ref": "#/definitions/ExperimentTemplateTargetFilterValue" - }, - "type": "array" - }, - "ExperimentTemplateTargetMap": { - "additionalProperties": false, - "description": "The targets for the experiment.", - "patternProperties": { - ".{1,64}": { - "$ref": "#/definitions/ExperimentTemplateTarget" - } - }, - "type": "object" - }, - "ExperimentTemplateTargetSelectionMode": { - "description": "Scopes the identified resources to a specific number of the resources at random, or a percentage of the resources.", - "maxLength": 64, - "type": "string" - }, - "ResourceArn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - }, - "ResourceArnList": { - "description": "The Amazon Resource Names (ARNs) of the target resources.", - "items": { - "$ref": "#/definitions/ResourceArn" - }, - "type": "array" - }, - "ResourceType": { - "description": "The AWS resource type. The resource type must be supported for the specified action.", - "maxLength": 64, - "type": "string" - }, - "RoleArn": { - "description": "The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.", - "maxLength": 1224, - "type": "string" - }, - "StopConditionSource": { - "maxLength": 64, - "type": "string" - }, - "StopConditionValue": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - } - }, - "description": "Resource schema for AWS::FIS::ExperimentTemplate", - "handlers": { - "create": { - "permissions": [ - "fis:CreateExperimentTemplate", - "fis:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "fis:DeleteExperimentTemplate" - ] - }, - "list": { - "permissions": [ - "fis:ListExperimentTemplates", - "fis:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "fis:GetExperimentTemplate", - "fis:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "fis:UpdateExperimentTemplate", - "fis:TagResource", - "fis:UntagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Actions": { - "$ref": "#/definitions/ExperimentTemplateActionMap" - }, - "Description": { - "$ref": "#/definitions/ExperimentTemplateDescription" - }, - "ExperimentOptions": { - "$ref": "#/definitions/ExperimentTemplateExperimentOptions" - }, - "Id": { - "$ref": "#/definitions/ExperimentTemplateId" - }, - "LogConfiguration": { - "$ref": "#/definitions/ExperimentTemplateLogConfiguration" - }, - "RoleArn": { - "$ref": "#/definitions/RoleArn" - }, - "StopConditions": { - "$ref": "#/definitions/ExperimentTemplateStopConditionList" - }, - "Tags": { - "additionalProperties": false, - "patternProperties": { - ".{1,128}": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - }, - "Targets": { - "$ref": "#/definitions/ExperimentTemplateTargetMap" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Description", - "StopConditions", - "Targets", - "RoleArn", - "Tags" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fis.git", - "typeName": "AWS::FIS::ExperimentTemplate" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-fis-targetaccountconfiguration.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-fis-targetaccountconfiguration.json deleted file mode 100644 index 152a59c5bb..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-fis-targetaccountconfiguration.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ExperimentTemplateId", - "/properties/AccountId" - ], - "definitions": { - "TargetAccountConfigurationDescription": { - "description": "The description of the target account.", - "maxLength": 512, - "type": "string" - }, - "TargetAccountId": { - "description": "The AWS account ID of the target account.", - "maxLength": 512, - "type": "string" - }, - "TargetAccountRoleArn": { - "description": "The Amazon Resource Name (ARN) of an IAM role for the target account.", - "maxLength": 1224, - "type": "string" - }, - "TargetExperimentTemplateId": { - "description": "The ID of the experiment template.", - "type": "string" - } - }, - "description": "Resource schema for AWS::FIS::TargetAccountConfiguration", - "handlers": { - "create": { - "permissions": [ - "fis:CreateTargetAccountConfiguration" - ] - }, - "delete": { - "permissions": [ - "fis:DeleteTargetAccountConfiguration" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ExperimentTemplateId": { - "$ref": "resource-schema.json#/properties/ExperimentTemplateId" - } - }, - "required": [ - "ExperimentTemplateId" - ] - }, - "permissions": [ - "fis:ListTargetAccountConfigurations" - ] - }, - "read": { - "permissions": [ - "fis:GetTargetAccountConfiguration" - ] - }, - "update": { - "permissions": [ - "fis:UpdateTargetAccountConfiguration" - ] - } - }, - "primaryIdentifier": [ - "/properties/ExperimentTemplateId", - "/properties/AccountId" - ], - "properties": { - "AccountId": { - "$ref": "#/definitions/TargetAccountId" - }, - "Description": { - "$ref": "#/definitions/TargetAccountConfigurationDescription" - }, - "ExperimentTemplateId": { - "$ref": "#/definitions/TargetExperimentTemplateId" - }, - "RoleArn": { - "$ref": "#/definitions/TargetAccountRoleArn" - } - }, - "required": [ - "ExperimentTemplateId", - "AccountId", - "RoleArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fis.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::FIS::TargetAccountConfiguration" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-fsx-datarepositoryassociation.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-fsx-datarepositoryassociation.json deleted file mode 100644 index 38eb5ca608..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-fsx-datarepositoryassociation.json +++ /dev/null @@ -1,212 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/FileSystemId", - "/properties/FileSystemPath", - "/properties/DataRepositoryPath", - "/properties/BatchImportMetaDataOnCreate" - ], - "definitions": { - "AutoExportPolicy": { - "additionalProperties": false, - "description": "Describes a data repository association's automatic export policy. The ``AutoExportPolicy`` defines the types of updated objects on the file system that will be automatically exported to the data repository. As you create, modify, or delete files, Amazon FSx for Lustre automatically exports the defined changes asynchronously once your application finishes modifying the file.\n The ``AutoExportPolicy`` is only supported on Amazon FSx for Lustre file systems with a data repository association.", - "properties": { - "Events": { - "$ref": "#/definitions/EventTypes", - "description": "The ``AutoExportPolicy`` can have the following event values:\n + ``NEW`` - New files and directories are automatically exported to the data repository as they are added to the file system.\n + ``CHANGED`` - Changes to files and directories on the file system are automatically exported to the data repository.\n + ``DELETED`` - Files and directories are automatically deleted on the data repository when they are deleted on the file system.\n \n You can define any combination of event types for your ``AutoExportPolicy``." - } - }, - "required": [ - "Events" - ], - "type": "object" - }, - "AutoImportPolicy": { - "additionalProperties": false, - "description": "Describes the data repository association's automatic import policy. The AutoImportPolicy defines how Amazon FSx keeps your file metadata and directory listings up to date by importing changes to your Amazon FSx for Lustre file system as you modify objects in a linked S3 bucket.\n The ``AutoImportPolicy`` is only supported on Amazon FSx for Lustre file systems with a data repository association.", - "properties": { - "Events": { - "$ref": "#/definitions/EventTypes", - "description": "The ``AutoImportPolicy`` can have the following event values:\n + ``NEW`` - Amazon FSx automatically imports metadata of files added to the linked S3 bucket that do not currently exist in the FSx file system.\n + ``CHANGED`` - Amazon FSx automatically updates file metadata and invalidates existing file content on the file system as files change in the data repository.\n + ``DELETED`` - Amazon FSx automatically deletes files on the file system as corresponding files are deleted in the data repository.\n \n You can define any combination of event types for your ``AutoImportPolicy``." - } - }, - "required": [ - "Events" - ], - "type": "object" - }, - "EventType": { - "enum": [ - "NEW", - "CHANGED", - "DELETED" - ], - "type": "string" - }, - "EventTypes": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/EventType" - }, - "maxItems": 3, - "type": "array", - "uniqueItems": true - }, - "S3": { - "additionalProperties": false, - "description": "The configuration for an Amazon S3 data repository linked to an Amazon FSx Lustre file system with a data repository association. The configuration defines which file events (new, changed, or deleted files or directories) are automatically imported from the linked data repository to the file system or automatically exported from the file system to the data repository.", - "properties": { - "AutoExportPolicy": { - "$ref": "#/definitions/AutoExportPolicy", - "description": "Describes a data repository association's automatic export policy. The ``AutoExportPolicy`` defines the types of updated objects on the file system that will be automatically exported to the data repository. As you create, modify, or delete files, Amazon FSx for Lustre automatically exports the defined changes asynchronously once your application finishes modifying the file.\n The ``AutoExportPolicy`` is only supported on Amazon FSx for Lustre file systems with a data repository association." - }, - "AutoImportPolicy": { - "$ref": "#/definitions/AutoImportPolicy", - "description": "Describes the data repository association's automatic import policy. The AutoImportPolicy defines how Amazon FSx keeps your file metadata and directory listings up to date by importing changes to your Amazon FSx for Lustre file system as you modify objects in a linked S3 bucket.\n The ``AutoImportPolicy`` is only supported on Amazon FSx for Lustre file systems with a data repository association." - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "description": "Specifies a key-value pair for a resource tag.", - "properties": { - "Key": { - "description": "A value that specifies the ``TagKey``, the name of the tag. Tag keys must be unique for the resource to which they are attached.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "A value that specifies the ``TagValue``, the value assigned to the corresponding tag key. Tag values can be null and don't have to be unique in a tag set. For example, you can have a key-value pair in a tag set of ``finances : April`` and also of ``payroll : April``.", - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "Creates an Amazon FSx for Lustre data repository association (DRA). A data repository association is a link between a directory on the file system and an Amazon S3 bucket or prefix. You can have a maximum of 8 data repository associations on a file system. Data repository associations are supported on all FSx for Lustre 2.12 and newer file systems, excluding ``scratch_1`` deployment type. \n Each data repository association must have a unique Amazon FSx file system directory and a unique S3 bucket or prefix associated with it. You can configure a data repository association for automatic import only, for automatic export only, or for both. To learn more about linking a data repository to your file system, see [Linking your file system to an S3 bucket](https://docs.aws.amazon.com/fsx/latest/LustreGuide/create-dra-linked-data-repo.html).", - "handlers": { - "create": { - "permissions": [ - "fsx:CreateDataRepositoryAssociation", - "fsx:DescribeDataRepositoryAssociations", - "fsx:TagResource", - "s3:ListBucket", - "s3:GetBucketPolicy", - "s3:PutBucketPolicy", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy" - ], - "timeoutInMinutes": 120 - }, - "delete": { - "permissions": [ - "fsx:DescribeDataRepositoryAssociations", - "fsx:DeleteDataRepositoryAssociation" - ], - "timeoutInMinutes": 180 - }, - "list": { - "permissions": [ - "fsx:DescribeDataRepositoryAssociations" - ] - }, - "read": { - "permissions": [ - "fsx:DescribeDataRepositoryAssociations" - ] - }, - "update": { - "permissions": [ - "fsx:DescribeDataRepositoryAssociations", - "fsx:UpdateDataRepositoryAssociation", - "fsx:TagResource", - "fsx:UntagResource", - "s3:ListBucket", - "s3:GetBucketPolicy", - "s3:PutBucketPolicy", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy" - ], - "timeoutInMinutes": 180 - } - }, - "primaryIdentifier": [ - "/properties/AssociationId" - ], - "properties": { - "AssociationId": { - "description": "", - "type": "string" - }, - "BatchImportMetaDataOnCreate": { - "description": "A boolean flag indicating whether an import data repository task to import metadata should run after the data repository association is created. The task runs if this flag is set to ``true``.", - "type": "boolean" - }, - "DataRepositoryPath": { - "description": "The path to the Amazon S3 data repository that will be linked to the file system. The path can be an S3 bucket or prefix in the format ``s3://myBucket/myPrefix/``. This path specifies where in the S3 data repository files will be imported from or exported to.", - "type": "string" - }, - "FileSystemId": { - "description": "The ID of the file system on which the data repository association is configured.", - "type": "string" - }, - "FileSystemPath": { - "description": "A path on the Amazon FSx for Lustre file system that points to a high-level directory (such as ``/ns1/``) or subdirectory (such as ``/ns1/subdir/``) that will be mapped 1-1 with ``DataRepositoryPath``. The leading forward slash in the name is required. Two data repository associations cannot have overlapping file system paths. For example, if a data repository is associated with file system path ``/ns1/``, then you cannot link another data repository with file system path ``/ns1/ns2``.\n This path specifies where in your file system files will be exported from or imported to. This file system directory can be linked to only one Amazon S3 bucket, and no other S3 bucket can be linked to the directory.\n If you specify only a forward slash (``/``) as the file system path, you can link only one data repository to the file system. You can only specify \"/\" as the file system path for the first data repository associated with a file system.", - "type": "string" - }, - "ImportedFileChunkSize": { - "description": "For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system or cache.\n The default chunk size is 1,024 MiB (1 GiB) and can go as high as 512,000 MiB (500 GiB). Amazon S3 objects have a maximum size of 5 TB.", - "type": "integer" - }, - "ResourceARN": { - "description": "", - "type": "string" - }, - "S3": { - "$ref": "#/definitions/S3", - "description": "The configuration for an Amazon S3 data repository linked to an Amazon FSx Lustre file system with a data repository association. The configuration defines which file events (new, changed, or deleted files or directories) are automatically imported from the linked data repository to the file system or automatically exported from the file system to the data repository." - }, - "Tags": { - "description": "An array of key-value pairs to apply to this resource.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/AssociationId", - "/properties/ResourceARN" - ], - "required": [ - "FileSystemId", - "FileSystemPath", - "DataRepositoryPath" - ], - "resourceLink": { - "mappings": { - "AssociationId": "/AssociationId", - "FileSystemId": "/FileSystemId" - }, - "templateUri": "/fsx/home?region=${awsRegion}#data-repository-associations-details/${FileSystemId}/${AssociationId}" - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fsx.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::FSx::DataRepositoryAssociation" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-imagebuilder-image.json new file mode 100644 index 0000000000..223d64e03e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-imagebuilder-image.json @@ -0,0 +1,263 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ImageRecipeArn", + "/properties/ContainerRecipeArn", + "/properties/InfrastructureConfigurationArn", + "/properties/Workflows", + "/properties/DistributionConfigurationArn", + "/properties/ImageTestsConfiguration", + "/properties/ImageScanningConfiguration", + "/properties/EnhancedImageMetadataEnabled", + "/properties/Tags" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Contains settings for Image Builder image resource and container image scans.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "The image tests configuration used when creating this image.", + "properties": { + "ImageTestsEnabled": { + "description": "ImageTestsEnabled", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "TimeoutMinutes", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "WorkflowConfiguration": { + "additionalProperties": false, + "description": "The workflow configuration of the image", + "properties": { + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "enum": [ + "CONTINUE", + "ABORT" + ], + "type": "string" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string" + }, + "Parameters": { + "description": "The parameters associated with the workflow", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "type": "array" + }, + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowParameter": { + "additionalProperties": false, + "description": "A parameter associated with the workflow", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowParameterValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", + "type": "string" + } + }, + "description": "Resource schema for AWS::ImageBuilder::Image", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:GetImage", + "imagebuilder:CreateImage", + "imagebuilder:TagResource", + "inspector2:BatchGetAccountStatus" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "imagebuilder:GetImage", + "imagebuilder:DeleteImage", + "imagebuilder:UnTagResource", + "imagebuilder:CancelImageCreation" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListImages" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImage" + ] + } + }, + "oneOf": [ + { + "required": [ + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string" + }, + "ImageId": { + "description": "The AMI ID of the EC2 AMI in current region.", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration used when creating this image." + }, + "ImageUri": { + "description": "URI for containers created in current Region with default ECR image tag", + "type": "string" + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", + "type": "string" + }, + "Name": { + "description": "The name of the image.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the image.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Name", + "/properties/ImageId", + "/properties/ImageUri" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Image" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-imagebuilder-imagepipeline.json new file mode 100644 index 0000000000..3cf9b2a4a9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-imagebuilder-imagepipeline.json @@ -0,0 +1,277 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "EcrConfiguration": { + "additionalProperties": false, + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", + "properties": { + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" + } + }, + "type": "object" + }, + "ImageScanningConfiguration": { + "additionalProperties": false, + "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/EcrConfiguration", + "description": "Contains ECR settings for vulnerability scans." + }, + "ImageScanningEnabled": { + "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", + "type": "boolean" + } + }, + "type": "object" + }, + "ImageTestsConfiguration": { + "additionalProperties": false, + "description": "Image tests configuration.", + "properties": { + "ImageTestsEnabled": { + "description": "Defines if tests should be executed when building this image.", + "type": "boolean" + }, + "TimeoutMinutes": { + "description": "The maximum time in minutes that tests are permitted to run.", + "maximum": 1440, + "minimum": 60, + "type": "integer" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "description": "The schedule of the image pipeline.", + "properties": { + "PipelineExecutionStartCondition": { + "description": "The condition configures when the pipeline should trigger a new image build.", + "enum": [ + "EXPRESSION_MATCH_ONLY", + "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" + ], + "type": "string" + }, + "ScheduleExpression": { + "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowConfiguration": { + "additionalProperties": false, + "description": "The workflow configuration of the image", + "properties": { + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "enum": [ + "CONTINUE", + "ABORT" + ], + "type": "string" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string" + }, + "Parameters": { + "description": "The parameters associated with the workflow", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "type": "array" + }, + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowParameter": { + "additionalProperties": false, + "description": "A parameter associated with the workflow", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowParameterValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", + "type": "string" + } + }, + "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:CreateImagePipeline", + "imagebuilder:GetWorkflow", + "inspector2:BatchGetAccountStatus" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:UnTagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:DeleteImagePipeline" + ] + }, + "list": { + "permissions": [ + "imagebuilder:ListImagePipelines" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetImagePipeline" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "imagebuilder:GetImagePipeline", + "imagebuilder:UpdateImagePipeline", + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Name", + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "Name", + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image pipeline.", + "type": "string" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" + }, + "Description": { + "description": "The description of the image pipeline.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/ImageScanningConfiguration", + "description": "Contains settings for vulnerability scans." + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/ImageTestsConfiguration", + "description": "The image tests configuration of the image pipeline." + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", + "type": "string" + }, + "Name": { + "description": "The name of the image pipeline.", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule", + "description": "The schedule of the image pipeline." + }, + "Status": { + "description": "The status of the image pipeline.", + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags of this image pipeline.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::ImagePipeline" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-imagebuilder-workflow.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-imagebuilder-workflow.json new file mode 100644 index 0000000000..5c25c2361b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-imagebuilder-workflow.json @@ -0,0 +1,145 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Version", + "/properties/ChangeDescription", + "/properties/Description", + "/properties/Data", + "/properties/Uri", + "/properties/Type", + "/properties/KmsKeyId", + "/properties/Tags" + ], + "description": "Resource schema for AWS::ImageBuilder::Workflow", + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "kms:GenerateDataKey*", + "kms:Encrypt", + "kms:Decrypt", + "s3:GetObject", + "s3:HeadBucket", + "s3:GetBucketLocation", + "imagebuilder:TagResource", + "imagebuilder:GetWorkflow", + "imagebuilder:CreateWorkflow" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:GetWorkflow", + "imagebuilder:UnTagResource", + "imagebuilder:DeleteWorkflow" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] + }, + "permissions": [ + "imagebuilder:ListWorkflows" + ] + }, + "read": { + "permissions": [ + "imagebuilder:GetWorkflow" + ] + } + }, + "oneOf": [ + { + "required": [ + "Data" + ] + }, + { + "required": [ + "Uri" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the workflow.", + "type": "string" + }, + "ChangeDescription": { + "description": "The change description of the workflow.", + "type": "string" + }, + "Data": { + "description": "The data of the workflow.", + "maxLength": 16000, + "minLength": 1, + "type": "string" + }, + "Description": { + "description": "The description of the workflow.", + "type": "string" + }, + "KmsKeyId": { + "description": "The KMS key identifier used to encrypt the workflow.", + "type": "string" + }, + "Name": { + "description": "The name of the workflow.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The tags associated with the workflow.", + "patternProperties": { + ".{1,}": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "description": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.", + "enum": [ + "BUILD", + "TEST", + "DISTRIBUTION" + ], + "type": "string" + }, + "Uri": { + "description": "The uri of the workflow.", + "type": "string" + }, + "Version": { + "description": "The version of the workflow.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "Name", + "Type", + "Version" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ImageBuilder::Workflow", + "writeOnlyProperties": [ + "/properties/Data", + "/properties/Uri" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-logs-delivery.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-logs-delivery.json deleted file mode 100644 index 55a08bcb93..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-logs-delivery.json +++ /dev/null @@ -1,141 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeliverySourceName", - "/properties/DeliveryDestinationArn" - ], - "definitions": { - "Arn": { - "description": "Amazon Resource Names (ARNs) uniquely identify AWS resources.", - "maxLength": 2048, - "minLength": 16, - "pattern": "^arn:(aws[a-zA-Z-]*)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,1023}$", - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "description": "A key-value pair to associate with a resource.", - "properties": { - "Key": { - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode", - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::Logs::Delivery.", - "handlers": { - "create": { - "permissions": [ - "logs:CreateDelivery", - "logs:GetDelivery", - "logs:DescribeDeliveries", - "logs:ListTagsForResource", - "logs:TagResource", - "logs:GetDeliverySource", - "logs:GetDeliveryDestination" - ] - }, - "delete": { - "permissions": [ - "logs:DeleteDelivery", - "logs:ListTagsForResource", - "logs:UntagResource" - ] - }, - "list": { - "permissions": [ - "logs:DescribeDeliveries", - "logs:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "logs:GetDelivery", - "logs:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "logs:GetDelivery", - "logs:ListTagsForResource", - "logs:TagResource", - "logs:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/DeliveryId" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn", - "description": "The value of the Arn property for this object." - }, - "DeliveryDestinationArn": { - "$ref": "#/definitions/Arn", - "description": "The value of the DeliveryDestinationArn property for this object." - }, - "DeliveryDestinationType": { - "description": "The value of the DeliveryDestinationType property for this object.", - "maxLength": 12, - "minLength": 1, - "pattern": "^[0-9A-Za-z]+$", - "type": "string" - }, - "DeliveryId": { - "description": "The value of the Id property for this object.", - "maxLength": 64, - "minLength": 1, - "pattern": "^[0-9A-Za-z]+$", - "type": "string" - }, - "DeliverySourceName": { - "description": "The value of the DeliverySourceName property for this object.", - "maxLength": 60, - "minLength": 1, - "pattern": "[\\w-]*$", - "type": "string" - }, - "Tags": { - "description": "The value of the Tags property for this object.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/DeliveryId", - "/properties/Arn", - "/properties/DeliveryDestinationType" - ], - "required": [ - "DeliverySourceName", - "DeliveryDestinationArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-logs.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Logs::Delivery" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-logs-deliverydestination.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-logs-deliverydestination.json deleted file mode 100644 index 2a1dd7f31f..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-logs-deliverydestination.json +++ /dev/null @@ -1,165 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/DestinationResourceArn" - ], - "definitions": { - "Arn": { - "description": "Amazon Resource Names (ARNs) uniquely identify AWS resources.", - "maxLength": 2048, - "minLength": 16, - "pattern": "^arn:(aws[a-zA-Z-]*)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,1023}$", - "type": "string" - }, - "DestinationPolicy": { - "additionalProperties": false, - "properties": { - "DeliveryDestinationName": { - "description": "The name of the delivery destination to assign this policy to", - "maxLength": 60, - "minLength": 1, - "type": "string" - }, - "DeliveryDestinationPolicy": { - "description": "The contents of the policy attached to the delivery destination", - "maxLength": 51200, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "DeliveryDestinationName", - "DeliveryDestinationPolicy" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "description": "A key-value pair to associate with a resource.", - "properties": { - "Key": { - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::Logs::DeliveryDestination", - "handlers": { - "create": { - "permissions": [ - "logs:PutDeliveryDestination", - "logs:GetDeliveryDestination", - "logs:ListTagsForResource", - "logs:TagResource", - "logs:UntagResource", - "logs:PutDeliveryDestinationPolicy", - "logs:GetDeliveryDestinationPolicy" - ] - }, - "delete": { - "permissions": [ - "logs:DeleteDeliveryDestination", - "logs:DeleteDeliveryDestinationPolicy" - ] - }, - "list": { - "permissions": [ - "logs:DescribeDeliveryDestinations", - "logs:GetDeliveryDestinationPolicy" - ] - }, - "read": { - "permissions": [ - "logs:GetDeliveryDestination", - "logs:ListTagsForResource", - "logs:GetDeliveryDestinationPolicy" - ] - }, - "update": { - "permissions": [ - "logs:PutDeliveryDestination", - "logs:GetDeliveryDestination", - "logs:ListTagsForResource", - "logs:TagResource", - "logs:UntagResource", - "logs:DeleteDeliveryDestinationPolicy", - "logs:PutDeliveryDestinationPolicy", - "logs:GetDeliveryDestinationPolicy" - ] - } - }, - "primaryIdentifier": [ - "/properties/Name" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn", - "description": "The value of the Arn property for this object." - }, - "DeliveryDestinationPolicy": { - "description": "IAM policy that grants permissions to CloudWatch Logs to deliver logs cross-account to a specified destination in this account.\n\nThe policy must be in JSON string format.\n\nLength Constraints: Maximum length of 51200", - "items": { - "$ref": "#/definitions/DestinationPolicy" - }, - "type": "object" - }, - "DeliveryDestinationType": { - "description": "The value of the DeliveryDestinationType property for this object.", - "maxLength": 12, - "minLength": 1, - "pattern": "^[0-9A-Za-z]+$", - "type": "string" - }, - "DestinationResourceArn": { - "$ref": "#/definitions/Arn", - "description": "The ARN of the Destination Resource." - }, - "Name": { - "description": "The unique name of the Delivery Destination.", - "maxLength": 60, - "minLength": 1, - "pattern": "[\\w-]*$", - "type": "string" - }, - "Tags": { - "description": "An array of key-value pairs to apply to this resource.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/DeliveryDestinationType" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-logs.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Logs::DeliveryDestination" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-logs-deliverysource.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-logs-deliverysource.json deleted file mode 100644 index 728a7f80af..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-logs-deliverysource.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "Arn": { - "description": "The ARN of the resource that will be sending the logs.", - "maxLength": 2048, - "minLength": 16, - "pattern": "^arn:(aws[a-zA-Z-]*)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,1023}$", - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "description": "A key-value pair to associate with a resource.", - "properties": { - "Key": { - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode", - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::Logs::DeliverySource.", - "handlers": { - "create": { - "permissions": [ - "logs:PutDeliverySource", - "logs:GetDeliverySource", - "logs:ListTagsForResource", - "logs:TagResource", - "logs:AllowVendedLogDeliveryForResource", - "codewhisperer:AllowVendedLogDeliveryForResource", - "autoloop:AllowVendedLogDeliveryForResource", - "workmail:AllowVendedLogDeliveryForResource" - ] - }, - "delete": { - "permissions": [ - "logs:DeleteDeliverySource" - ] - }, - "list": { - "permissions": [ - "logs:DescribeDeliverySources" - ] - }, - "read": { - "permissions": [ - "logs:GetDeliverySource", - "logs:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "logs:PutDeliverySource", - "logs:GetDeliverySource", - "logs:ListTagsForResource", - "logs:TagResource", - "logs:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Name" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn", - "description": "The ARN of the Aqueduct Source." - }, - "LogType": { - "description": "The type of logs being delivered. Only mandatory when the resourceArn could match more than one. In such a case, the error message will contain all the possible options.", - "maxLength": 255, - "minLength": 1, - "pattern": "[\\w-]*$", - "type": "string" - }, - "Name": { - "description": "The unique name of the Log source.", - "maxLength": 60, - "minLength": 1, - "pattern": "[\\w-]*$", - "type": "string" - }, - "ResourceArn": { - "$ref": "#/definitions/Arn", - "description": "The ARN of the resource that will be sending the logs." - }, - "ResourceArns": { - "description": "List of ARN of the resource that will be sending the logs", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Arn" - }, - "type": "array", - "uniqueItems": true - }, - "Service": { - "description": "The service generating the log", - "maxLength": 255, - "minLength": 1, - "pattern": "[\\w-]*$", - "type": "string" - }, - "Tags": { - "description": "An array of key-value pairs to apply to this resource.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Service", - "/properties/ResourceArns", - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-logs.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Logs::DeliverySource", - "writeOnlyProperties": [ - "/properties/ResourceArn" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-logs-querydefinition.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-logs-querydefinition.json new file mode 100644 index 0000000000..1b3d459124 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-logs-querydefinition.json @@ -0,0 +1,81 @@ +{ + "additionalProperties": false, + "definitions": { + "LogGroup": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\.\\-_/#A-Za-z0-9]+", + "type": "string" + } + }, + "description": "The resource schema for AWSLogs QueryDefinition", + "handlers": { + "create": { + "permissions": [ + "logs:PutQueryDefinition" + ] + }, + "delete": { + "permissions": [ + "logs:DeleteQueryDefinition" + ] + }, + "list": { + "permissions": [ + "logs:DescribeQueryDefinitions" + ] + }, + "read": { + "permissions": [ + "logs:DescribeQueryDefinitions" + ] + }, + "update": { + "permissions": [ + "logs:PutQueryDefinition" + ] + } + }, + "primaryIdentifier": [ + "/properties/QueryDefinitionId" + ], + "properties": { + "LogGroupNames": { + "description": "Optionally define specific log groups as part of your query definition", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LogGroup", + "description": "LogGroup name" + }, + "type": "array" + }, + "Name": { + "description": "A name for the saved query definition", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "QueryDefinitionId": { + "description": "Unique identifier of a query definition", + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "QueryString": { + "description": "The query string to use for this definition", + "maxLength": 10000, + "minLength": 1, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/QueryDefinitionId" + ], + "required": [ + "Name", + "QueryString" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-logs.git", + "taggable": false, + "typeName": "AWS::Logs::QueryDefinition" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-medialive-channel.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-medialive-channel.json deleted file mode 100644 index d5a7dd8e34..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-medialive-channel.json +++ /dev/null @@ -1,3160 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Vpc" - ], - "definitions": { - "AacSettings": { - "additionalProperties": false, - "properties": { - "Bitrate": { - "type": "number" - }, - "CodingMode": { - "type": "string" - }, - "InputType": { - "type": "string" - }, - "Profile": { - "type": "string" - }, - "RateControlMode": { - "type": "string" - }, - "RawFormat": { - "type": "string" - }, - "SampleRate": { - "type": "number" - }, - "Spec": { - "type": "string" - }, - "VbrQuality": { - "type": "string" - } - }, - "type": "object" - }, - "Ac3Settings": { - "additionalProperties": false, - "properties": { - "AttenuationControl": { - "type": "string" - }, - "Bitrate": { - "type": "number" - }, - "BitstreamMode": { - "type": "string" - }, - "CodingMode": { - "type": "string" - }, - "Dialnorm": { - "type": "integer" - }, - "DrcProfile": { - "type": "string" - }, - "LfeFilter": { - "type": "string" - }, - "MetadataControl": { - "type": "string" - } - }, - "type": "object" - }, - "AncillarySourceSettings": { - "additionalProperties": false, - "properties": { - "SourceAncillaryChannelNumber": { - "type": "integer" - } - }, - "type": "object" - }, - "ArchiveCdnSettings": { - "additionalProperties": false, - "properties": { - "ArchiveS3Settings": { - "$ref": "#/definitions/ArchiveS3Settings" - } - }, - "type": "object" - }, - "ArchiveContainerSettings": { - "additionalProperties": false, - "properties": { - "M2tsSettings": { - "$ref": "#/definitions/M2tsSettings" - }, - "RawSettings": { - "$ref": "#/definitions/RawSettings" - } - }, - "type": "object" - }, - "ArchiveGroupSettings": { - "additionalProperties": false, - "properties": { - "ArchiveCdnSettings": { - "$ref": "#/definitions/ArchiveCdnSettings" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "RolloverInterval": { - "type": "integer" - } - }, - "type": "object" - }, - "ArchiveOutputSettings": { - "additionalProperties": false, - "properties": { - "ContainerSettings": { - "$ref": "#/definitions/ArchiveContainerSettings" - }, - "Extension": { - "type": "string" - }, - "NameModifier": { - "type": "string" - } - }, - "type": "object" - }, - "ArchiveS3Settings": { - "additionalProperties": false, - "properties": { - "CannedAcl": { - "type": "string" - } - }, - "type": "object" - }, - "AribDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "AribSourceSettings": { - "additionalProperties": false, - "type": "object" - }, - "AudioChannelMapping": { - "additionalProperties": false, - "properties": { - "InputChannelLevels": { - "items": { - "$ref": "#/definitions/InputChannelLevel" - }, - "type": "array", - "uniqueItems": false - }, - "OutputChannel": { - "type": "integer" - } - }, - "type": "object" - }, - "AudioCodecSettings": { - "additionalProperties": false, - "properties": { - "AacSettings": { - "$ref": "#/definitions/AacSettings" - }, - "Ac3Settings": { - "$ref": "#/definitions/Ac3Settings" - }, - "Eac3AtmosSettings": { - "$ref": "#/definitions/Eac3AtmosSettings" - }, - "Eac3Settings": { - "$ref": "#/definitions/Eac3Settings" - }, - "Mp2Settings": { - "$ref": "#/definitions/Mp2Settings" - }, - "PassThroughSettings": { - "$ref": "#/definitions/PassThroughSettings" - }, - "WavSettings": { - "$ref": "#/definitions/WavSettings" - } - }, - "type": "object" - }, - "AudioDescription": { - "additionalProperties": false, - "properties": { - "AudioNormalizationSettings": { - "$ref": "#/definitions/AudioNormalizationSettings" - }, - "AudioSelectorName": { - "type": "string" - }, - "AudioType": { - "type": "string" - }, - "AudioTypeControl": { - "type": "string" - }, - "AudioWatermarkingSettings": { - "$ref": "#/definitions/AudioWatermarkSettings" - }, - "CodecSettings": { - "$ref": "#/definitions/AudioCodecSettings" - }, - "LanguageCode": { - "type": "string" - }, - "LanguageCodeControl": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "RemixSettings": { - "$ref": "#/definitions/RemixSettings" - }, - "StreamName": { - "type": "string" - } - }, - "type": "object" - }, - "AudioDolbyEDecode": { - "additionalProperties": false, - "properties": { - "ProgramSelection": { - "type": "string" - } - }, - "type": "object" - }, - "AudioHlsRenditionSelection": { - "additionalProperties": false, - "properties": { - "GroupId": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AudioLanguageSelection": { - "additionalProperties": false, - "properties": { - "LanguageCode": { - "type": "string" - }, - "LanguageSelectionPolicy": { - "type": "string" - } - }, - "type": "object" - }, - "AudioNormalizationSettings": { - "additionalProperties": false, - "properties": { - "Algorithm": { - "type": "string" - }, - "AlgorithmControl": { - "type": "string" - }, - "TargetLkfs": { - "type": "number" - } - }, - "type": "object" - }, - "AudioOnlyHlsSettings": { - "additionalProperties": false, - "properties": { - "AudioGroupId": { - "type": "string" - }, - "AudioOnlyImage": { - "$ref": "#/definitions/InputLocation" - }, - "AudioTrackType": { - "type": "string" - }, - "SegmentType": { - "type": "string" - } - }, - "type": "object" - }, - "AudioPidSelection": { - "additionalProperties": false, - "properties": { - "Pid": { - "type": "integer" - } - }, - "type": "object" - }, - "AudioSelector": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "SelectorSettings": { - "$ref": "#/definitions/AudioSelectorSettings" - } - }, - "type": "object" - }, - "AudioSelectorSettings": { - "additionalProperties": false, - "properties": { - "AudioHlsRenditionSelection": { - "$ref": "#/definitions/AudioHlsRenditionSelection" - }, - "AudioLanguageSelection": { - "$ref": "#/definitions/AudioLanguageSelection" - }, - "AudioPidSelection": { - "$ref": "#/definitions/AudioPidSelection" - }, - "AudioTrackSelection": { - "$ref": "#/definitions/AudioTrackSelection" - } - }, - "type": "object" - }, - "AudioSilenceFailoverSettings": { - "additionalProperties": false, - "properties": { - "AudioSelectorName": { - "type": "string" - }, - "AudioSilenceThresholdMsec": { - "type": "integer" - } - }, - "type": "object" - }, - "AudioTrack": { - "additionalProperties": false, - "properties": { - "Track": { - "type": "integer" - } - }, - "type": "object" - }, - "AudioTrackSelection": { - "additionalProperties": false, - "properties": { - "DolbyEDecode": { - "$ref": "#/definitions/AudioDolbyEDecode" - }, - "Tracks": { - "items": { - "$ref": "#/definitions/AudioTrack" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "AudioWatermarkSettings": { - "additionalProperties": false, - "properties": { - "NielsenWatermarksSettings": { - "$ref": "#/definitions/NielsenWatermarksSettings" - } - }, - "type": "object" - }, - "AutomaticInputFailoverSettings": { - "additionalProperties": false, - "properties": { - "ErrorClearTimeMsec": { - "type": "integer" - }, - "FailoverConditions": { - "items": { - "$ref": "#/definitions/FailoverCondition" - }, - "type": "array", - "uniqueItems": false - }, - "InputPreference": { - "type": "string" - }, - "SecondaryInputId": { - "type": "string" - } - }, - "type": "object" - }, - "AvailBlanking": { - "additionalProperties": false, - "properties": { - "AvailBlankingImage": { - "$ref": "#/definitions/InputLocation" - }, - "State": { - "type": "string" - } - }, - "type": "object" - }, - "AvailConfiguration": { - "additionalProperties": false, - "properties": { - "AvailSettings": { - "$ref": "#/definitions/AvailSettings" - } - }, - "type": "object" - }, - "AvailSettings": { - "additionalProperties": false, - "properties": { - "Esam": { - "$ref": "#/definitions/Esam" - }, - "Scte35SpliceInsert": { - "$ref": "#/definitions/Scte35SpliceInsert" - }, - "Scte35TimeSignalApos": { - "$ref": "#/definitions/Scte35TimeSignalApos" - } - }, - "type": "object" - }, - "BlackoutSlate": { - "additionalProperties": false, - "properties": { - "BlackoutSlateImage": { - "$ref": "#/definitions/InputLocation" - }, - "NetworkEndBlackout": { - "type": "string" - }, - "NetworkEndBlackoutImage": { - "$ref": "#/definitions/InputLocation" - }, - "NetworkId": { - "type": "string" - }, - "State": { - "type": "string" - } - }, - "type": "object" - }, - "BurnInDestinationSettings": { - "additionalProperties": false, - "properties": { - "Alignment": { - "type": "string" - }, - "BackgroundColor": { - "type": "string" - }, - "BackgroundOpacity": { - "type": "integer" - }, - "Font": { - "$ref": "#/definitions/InputLocation" - }, - "FontColor": { - "type": "string" - }, - "FontOpacity": { - "type": "integer" - }, - "FontResolution": { - "type": "integer" - }, - "FontSize": { - "type": "string" - }, - "OutlineColor": { - "type": "string" - }, - "OutlineSize": { - "type": "integer" - }, - "ShadowColor": { - "type": "string" - }, - "ShadowOpacity": { - "type": "integer" - }, - "ShadowXOffset": { - "type": "integer" - }, - "ShadowYOffset": { - "type": "integer" - }, - "TeletextGridControl": { - "type": "string" - }, - "XPosition": { - "type": "integer" - }, - "YPosition": { - "type": "integer" - } - }, - "type": "object" - }, - "CaptionDescription": { - "additionalProperties": false, - "properties": { - "Accessibility": { - "type": "string" - }, - "CaptionSelectorName": { - "type": "string" - }, - "DestinationSettings": { - "$ref": "#/definitions/CaptionDestinationSettings" - }, - "LanguageCode": { - "type": "string" - }, - "LanguageDescription": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "CaptionDestinationSettings": { - "additionalProperties": false, - "properties": { - "AribDestinationSettings": { - "$ref": "#/definitions/AribDestinationSettings" - }, - "BurnInDestinationSettings": { - "$ref": "#/definitions/BurnInDestinationSettings" - }, - "DvbSubDestinationSettings": { - "$ref": "#/definitions/DvbSubDestinationSettings" - }, - "EbuTtDDestinationSettings": { - "$ref": "#/definitions/EbuTtDDestinationSettings" - }, - "EmbeddedDestinationSettings": { - "$ref": "#/definitions/EmbeddedDestinationSettings" - }, - "EmbeddedPlusScte20DestinationSettings": { - "$ref": "#/definitions/EmbeddedPlusScte20DestinationSettings" - }, - "RtmpCaptionInfoDestinationSettings": { - "$ref": "#/definitions/RtmpCaptionInfoDestinationSettings" - }, - "Scte20PlusEmbeddedDestinationSettings": { - "$ref": "#/definitions/Scte20PlusEmbeddedDestinationSettings" - }, - "Scte27DestinationSettings": { - "$ref": "#/definitions/Scte27DestinationSettings" - }, - "SmpteTtDestinationSettings": { - "$ref": "#/definitions/SmpteTtDestinationSettings" - }, - "TeletextDestinationSettings": { - "$ref": "#/definitions/TeletextDestinationSettings" - }, - "TtmlDestinationSettings": { - "$ref": "#/definitions/TtmlDestinationSettings" - }, - "WebvttDestinationSettings": { - "$ref": "#/definitions/WebvttDestinationSettings" - } - }, - "type": "object" - }, - "CaptionLanguageMapping": { - "additionalProperties": false, - "properties": { - "CaptionChannel": { - "type": "integer" - }, - "LanguageCode": { - "type": "string" - }, - "LanguageDescription": { - "type": "string" - } - }, - "type": "object" - }, - "CaptionRectangle": { - "additionalProperties": false, - "properties": { - "Height": { - "type": "number" - }, - "LeftOffset": { - "type": "number" - }, - "TopOffset": { - "type": "number" - }, - "Width": { - "type": "number" - } - }, - "type": "object" - }, - "CaptionSelector": { - "additionalProperties": false, - "properties": { - "LanguageCode": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "SelectorSettings": { - "$ref": "#/definitions/CaptionSelectorSettings" - } - }, - "type": "object" - }, - "CaptionSelectorSettings": { - "additionalProperties": false, - "properties": { - "AncillarySourceSettings": { - "$ref": "#/definitions/AncillarySourceSettings" - }, - "AribSourceSettings": { - "$ref": "#/definitions/AribSourceSettings" - }, - "DvbSubSourceSettings": { - "$ref": "#/definitions/DvbSubSourceSettings" - }, - "EmbeddedSourceSettings": { - "$ref": "#/definitions/EmbeddedSourceSettings" - }, - "Scte20SourceSettings": { - "$ref": "#/definitions/Scte20SourceSettings" - }, - "Scte27SourceSettings": { - "$ref": "#/definitions/Scte27SourceSettings" - }, - "TeletextSourceSettings": { - "$ref": "#/definitions/TeletextSourceSettings" - } - }, - "type": "object" - }, - "CdiInputSpecification": { - "additionalProperties": false, - "properties": { - "Resolution": { - "type": "string" - } - }, - "type": "object" - }, - "ColorSpacePassthroughSettings": { - "additionalProperties": false, - "type": "object" - }, - "DolbyVision81Settings": { - "additionalProperties": false, - "type": "object" - }, - "DvbNitSettings": { - "additionalProperties": false, - "properties": { - "NetworkId": { - "type": "integer" - }, - "NetworkName": { - "type": "string" - }, - "RepInterval": { - "type": "integer" - } - }, - "type": "object" - }, - "DvbSdtSettings": { - "additionalProperties": false, - "properties": { - "OutputSdt": { - "type": "string" - }, - "RepInterval": { - "type": "integer" - }, - "ServiceName": { - "type": "string" - }, - "ServiceProviderName": { - "type": "string" - } - }, - "type": "object" - }, - "DvbSubDestinationSettings": { - "additionalProperties": false, - "properties": { - "Alignment": { - "type": "string" - }, - "BackgroundColor": { - "type": "string" - }, - "BackgroundOpacity": { - "type": "integer" - }, - "Font": { - "$ref": "#/definitions/InputLocation" - }, - "FontColor": { - "type": "string" - }, - "FontOpacity": { - "type": "integer" - }, - "FontResolution": { - "type": "integer" - }, - "FontSize": { - "type": "string" - }, - "OutlineColor": { - "type": "string" - }, - "OutlineSize": { - "type": "integer" - }, - "ShadowColor": { - "type": "string" - }, - "ShadowOpacity": { - "type": "integer" - }, - "ShadowXOffset": { - "type": "integer" - }, - "ShadowYOffset": { - "type": "integer" - }, - "TeletextGridControl": { - "type": "string" - }, - "XPosition": { - "type": "integer" - }, - "YPosition": { - "type": "integer" - } - }, - "type": "object" - }, - "DvbSubSourceSettings": { - "additionalProperties": false, - "properties": { - "OcrLanguage": { - "type": "string" - }, - "Pid": { - "type": "integer" - } - }, - "type": "object" - }, - "DvbTdtSettings": { - "additionalProperties": false, - "properties": { - "RepInterval": { - "type": "integer" - } - }, - "type": "object" - }, - "Eac3AtmosSettings": { - "additionalProperties": false, - "properties": { - "Bitrate": { - "type": "number" - }, - "CodingMode": { - "type": "string" - }, - "Dialnorm": { - "type": "integer" - }, - "DrcLine": { - "type": "string" - }, - "DrcRf": { - "type": "string" - }, - "HeightTrim": { - "type": "number" - }, - "SurroundTrim": { - "type": "number" - } - }, - "type": "object" - }, - "Eac3Settings": { - "additionalProperties": false, - "properties": { - "AttenuationControl": { - "type": "string" - }, - "Bitrate": { - "type": "number" - }, - "BitstreamMode": { - "type": "string" - }, - "CodingMode": { - "type": "string" - }, - "DcFilter": { - "type": "string" - }, - "Dialnorm": { - "type": "integer" - }, - "DrcLine": { - "type": "string" - }, - "DrcRf": { - "type": "string" - }, - "LfeControl": { - "type": "string" - }, - "LfeFilter": { - "type": "string" - }, - "LoRoCenterMixLevel": { - "type": "number" - }, - "LoRoSurroundMixLevel": { - "type": "number" - }, - "LtRtCenterMixLevel": { - "type": "number" - }, - "LtRtSurroundMixLevel": { - "type": "number" - }, - "MetadataControl": { - "type": "string" - }, - "PassthroughControl": { - "type": "string" - }, - "PhaseControl": { - "type": "string" - }, - "StereoDownmix": { - "type": "string" - }, - "SurroundExMode": { - "type": "string" - }, - "SurroundMode": { - "type": "string" - } - }, - "type": "object" - }, - "EbuTtDDestinationSettings": { - "additionalProperties": false, - "properties": { - "CopyrightHolder": { - "type": "string" - }, - "FillLineGap": { - "type": "string" - }, - "FontFamily": { - "type": "string" - }, - "StyleControl": { - "type": "string" - } - }, - "type": "object" - }, - "EmbeddedDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "EmbeddedPlusScte20DestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "EmbeddedSourceSettings": { - "additionalProperties": false, - "properties": { - "Convert608To708": { - "type": "string" - }, - "Scte20Detection": { - "type": "string" - }, - "Source608ChannelNumber": { - "type": "integer" - }, - "Source608TrackNumber": { - "type": "integer" - } - }, - "type": "object" - }, - "EncoderSettings": { - "additionalProperties": false, - "properties": { - "AudioDescriptions": { - "items": { - "$ref": "#/definitions/AudioDescription" - }, - "type": "array", - "uniqueItems": false - }, - "AvailBlanking": { - "$ref": "#/definitions/AvailBlanking" - }, - "AvailConfiguration": { - "$ref": "#/definitions/AvailConfiguration" - }, - "BlackoutSlate": { - "$ref": "#/definitions/BlackoutSlate" - }, - "CaptionDescriptions": { - "items": { - "$ref": "#/definitions/CaptionDescription" - }, - "type": "array", - "uniqueItems": false - }, - "FeatureActivations": { - "$ref": "#/definitions/FeatureActivations" - }, - "GlobalConfiguration": { - "$ref": "#/definitions/GlobalConfiguration" - }, - "MotionGraphicsConfiguration": { - "$ref": "#/definitions/MotionGraphicsConfiguration" - }, - "NielsenConfiguration": { - "$ref": "#/definitions/NielsenConfiguration" - }, - "OutputGroups": { - "items": { - "$ref": "#/definitions/OutputGroup" - }, - "type": "array", - "uniqueItems": false - }, - "ThumbnailConfiguration": { - "$ref": "#/definitions/ThumbnailConfiguration" - }, - "TimecodeConfig": { - "$ref": "#/definitions/TimecodeConfig" - }, - "VideoDescriptions": { - "items": { - "$ref": "#/definitions/VideoDescription" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "EpochLockingSettings": { - "additionalProperties": false, - "properties": { - "CustomEpoch": { - "type": "string" - }, - "JamSyncTime": { - "type": "string" - } - }, - "type": "object" - }, - "Esam": { - "additionalProperties": false, - "properties": { - "AcquisitionPointId": { - "type": "string" - }, - "AdAvailOffset": { - "type": "integer" - }, - "PasswordParam": { - "type": "string" - }, - "PoisEndpoint": { - "type": "string" - }, - "Username": { - "type": "string" - }, - "ZoneIdentity": { - "type": "string" - } - }, - "type": "object" - }, - "FailoverCondition": { - "additionalProperties": false, - "properties": { - "FailoverConditionSettings": { - "$ref": "#/definitions/FailoverConditionSettings" - } - }, - "type": "object" - }, - "FailoverConditionSettings": { - "additionalProperties": false, - "properties": { - "AudioSilenceSettings": { - "$ref": "#/definitions/AudioSilenceFailoverSettings" - }, - "InputLossSettings": { - "$ref": "#/definitions/InputLossFailoverSettings" - }, - "VideoBlackSettings": { - "$ref": "#/definitions/VideoBlackFailoverSettings" - } - }, - "type": "object" - }, - "FeatureActivations": { - "additionalProperties": false, - "properties": { - "InputPrepareScheduleActions": { - "type": "string" - }, - "OutputStaticImageOverlayScheduleActions": { - "type": "string" - } - }, - "type": "object" - }, - "FecOutputSettings": { - "additionalProperties": false, - "properties": { - "ColumnDepth": { - "type": "integer" - }, - "IncludeFec": { - "type": "string" - }, - "RowLength": { - "type": "integer" - } - }, - "type": "object" - }, - "Fmp4HlsSettings": { - "additionalProperties": false, - "properties": { - "AudioRenditionSets": { - "type": "string" - }, - "NielsenId3Behavior": { - "type": "string" - }, - "TimedMetadataBehavior": { - "type": "string" - } - }, - "type": "object" - }, - "FrameCaptureCdnSettings": { - "additionalProperties": false, - "properties": { - "FrameCaptureS3Settings": { - "$ref": "#/definitions/FrameCaptureS3Settings" - } - }, - "type": "object" - }, - "FrameCaptureGroupSettings": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "FrameCaptureCdnSettings": { - "$ref": "#/definitions/FrameCaptureCdnSettings" - } - }, - "type": "object" - }, - "FrameCaptureHlsSettings": { - "additionalProperties": false, - "type": "object" - }, - "FrameCaptureOutputSettings": { - "additionalProperties": false, - "properties": { - "NameModifier": { - "type": "string" - } - }, - "type": "object" - }, - "FrameCaptureS3Settings": { - "additionalProperties": false, - "properties": { - "CannedAcl": { - "type": "string" - } - }, - "type": "object" - }, - "FrameCaptureSettings": { - "additionalProperties": false, - "properties": { - "CaptureInterval": { - "type": "integer" - }, - "CaptureIntervalUnits": { - "type": "string" - }, - "TimecodeBurninSettings": { - "$ref": "#/definitions/TimecodeBurninSettings" - } - }, - "type": "object" - }, - "GlobalConfiguration": { - "additionalProperties": false, - "properties": { - "InitialAudioGain": { - "type": "integer" - }, - "InputEndAction": { - "type": "string" - }, - "InputLossBehavior": { - "$ref": "#/definitions/InputLossBehavior" - }, - "OutputLockingMode": { - "type": "string" - }, - "OutputLockingSettings": { - "$ref": "#/definitions/OutputLockingSettings" - }, - "OutputTimingSource": { - "type": "string" - }, - "SupportLowFramerateInputs": { - "type": "string" - } - }, - "type": "object" - }, - "H264ColorSpaceSettings": { - "additionalProperties": false, - "properties": { - "ColorSpacePassthroughSettings": { - "$ref": "#/definitions/ColorSpacePassthroughSettings" - }, - "Rec601Settings": { - "$ref": "#/definitions/Rec601Settings" - }, - "Rec709Settings": { - "$ref": "#/definitions/Rec709Settings" - } - }, - "type": "object" - }, - "H264FilterSettings": { - "additionalProperties": false, - "properties": { - "TemporalFilterSettings": { - "$ref": "#/definitions/TemporalFilterSettings" - } - }, - "type": "object" - }, - "H264Settings": { - "additionalProperties": false, - "properties": { - "AdaptiveQuantization": { - "type": "string" - }, - "AfdSignaling": { - "type": "string" - }, - "Bitrate": { - "type": "integer" - }, - "BufFillPct": { - "type": "integer" - }, - "BufSize": { - "type": "integer" - }, - "ColorMetadata": { - "type": "string" - }, - "ColorSpaceSettings": { - "$ref": "#/definitions/H264ColorSpaceSettings" - }, - "EntropyEncoding": { - "type": "string" - }, - "FilterSettings": { - "$ref": "#/definitions/H264FilterSettings" - }, - "FixedAfd": { - "type": "string" - }, - "FlickerAq": { - "type": "string" - }, - "ForceFieldPictures": { - "type": "string" - }, - "FramerateControl": { - "type": "string" - }, - "FramerateDenominator": { - "type": "integer" - }, - "FramerateNumerator": { - "type": "integer" - }, - "GopBReference": { - "type": "string" - }, - "GopClosedCadence": { - "type": "integer" - }, - "GopNumBFrames": { - "type": "integer" - }, - "GopSize": { - "type": "number" - }, - "GopSizeUnits": { - "type": "string" - }, - "Level": { - "type": "string" - }, - "LookAheadRateControl": { - "type": "string" - }, - "MaxBitrate": { - "type": "integer" - }, - "MinIInterval": { - "type": "integer" - }, - "NumRefFrames": { - "type": "integer" - }, - "ParControl": { - "type": "string" - }, - "ParDenominator": { - "type": "integer" - }, - "ParNumerator": { - "type": "integer" - }, - "Profile": { - "type": "string" - }, - "QualityLevel": { - "type": "string" - }, - "QvbrQualityLevel": { - "type": "integer" - }, - "RateControlMode": { - "type": "string" - }, - "ScanType": { - "type": "string" - }, - "SceneChangeDetect": { - "type": "string" - }, - "Slices": { - "type": "integer" - }, - "Softness": { - "type": "integer" - }, - "SpatialAq": { - "type": "string" - }, - "SubgopLength": { - "type": "string" - }, - "Syntax": { - "type": "string" - }, - "TemporalAq": { - "type": "string" - }, - "TimecodeBurninSettings": { - "$ref": "#/definitions/TimecodeBurninSettings" - }, - "TimecodeInsertion": { - "type": "string" - } - }, - "type": "object" - }, - "H265ColorSpaceSettings": { - "additionalProperties": false, - "properties": { - "ColorSpacePassthroughSettings": { - "$ref": "#/definitions/ColorSpacePassthroughSettings" - }, - "DolbyVision81Settings": { - "$ref": "#/definitions/DolbyVision81Settings" - }, - "Hdr10Settings": { - "$ref": "#/definitions/Hdr10Settings" - }, - "Rec601Settings": { - "$ref": "#/definitions/Rec601Settings" - }, - "Rec709Settings": { - "$ref": "#/definitions/Rec709Settings" - } - }, - "type": "object" - }, - "H265FilterSettings": { - "additionalProperties": false, - "properties": { - "TemporalFilterSettings": { - "$ref": "#/definitions/TemporalFilterSettings" - } - }, - "type": "object" - }, - "H265Settings": { - "additionalProperties": false, - "properties": { - "AdaptiveQuantization": { - "type": "string" - }, - "AfdSignaling": { - "type": "string" - }, - "AlternativeTransferFunction": { - "type": "string" - }, - "Bitrate": { - "type": "integer" - }, - "BufSize": { - "type": "integer" - }, - "ColorMetadata": { - "type": "string" - }, - "ColorSpaceSettings": { - "$ref": "#/definitions/H265ColorSpaceSettings" - }, - "FilterSettings": { - "$ref": "#/definitions/H265FilterSettings" - }, - "FixedAfd": { - "type": "string" - }, - "FlickerAq": { - "type": "string" - }, - "FramerateDenominator": { - "type": "integer" - }, - "FramerateNumerator": { - "type": "integer" - }, - "GopClosedCadence": { - "type": "integer" - }, - "GopSize": { - "type": "number" - }, - "GopSizeUnits": { - "type": "string" - }, - "Level": { - "type": "string" - }, - "LookAheadRateControl": { - "type": "string" - }, - "MaxBitrate": { - "type": "integer" - }, - "MinIInterval": { - "type": "integer" - }, - "ParDenominator": { - "type": "integer" - }, - "ParNumerator": { - "type": "integer" - }, - "Profile": { - "type": "string" - }, - "QvbrQualityLevel": { - "type": "integer" - }, - "RateControlMode": { - "type": "string" - }, - "ScanType": { - "type": "string" - }, - "SceneChangeDetect": { - "type": "string" - }, - "Slices": { - "type": "integer" - }, - "Tier": { - "type": "string" - }, - "TimecodeBurninSettings": { - "$ref": "#/definitions/TimecodeBurninSettings" - }, - "TimecodeInsertion": { - "type": "string" - } - }, - "type": "object" - }, - "Hdr10Settings": { - "additionalProperties": false, - "properties": { - "MaxCll": { - "type": "integer" - }, - "MaxFall": { - "type": "integer" - } - }, - "type": "object" - }, - "HlsAkamaiSettings": { - "additionalProperties": false, - "properties": { - "ConnectionRetryInterval": { - "type": "integer" - }, - "FilecacheDuration": { - "type": "integer" - }, - "HttpTransferMode": { - "type": "string" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - }, - "Salt": { - "type": "string" - }, - "Token": { - "type": "string" - } - }, - "type": "object" - }, - "HlsBasicPutSettings": { - "additionalProperties": false, - "properties": { - "ConnectionRetryInterval": { - "type": "integer" - }, - "FilecacheDuration": { - "type": "integer" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - } - }, - "type": "object" - }, - "HlsCdnSettings": { - "additionalProperties": false, - "properties": { - "HlsAkamaiSettings": { - "$ref": "#/definitions/HlsAkamaiSettings" - }, - "HlsBasicPutSettings": { - "$ref": "#/definitions/HlsBasicPutSettings" - }, - "HlsMediaStoreSettings": { - "$ref": "#/definitions/HlsMediaStoreSettings" - }, - "HlsS3Settings": { - "$ref": "#/definitions/HlsS3Settings" - }, - "HlsWebdavSettings": { - "$ref": "#/definitions/HlsWebdavSettings" - } - }, - "type": "object" - }, - "HlsGroupSettings": { - "additionalProperties": false, - "properties": { - "AdMarkers": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "BaseUrlContent": { - "type": "string" - }, - "BaseUrlContent1": { - "type": "string" - }, - "BaseUrlManifest": { - "type": "string" - }, - "BaseUrlManifest1": { - "type": "string" - }, - "CaptionLanguageMappings": { - "items": { - "$ref": "#/definitions/CaptionLanguageMapping" - }, - "type": "array", - "uniqueItems": false - }, - "CaptionLanguageSetting": { - "type": "string" - }, - "ClientCache": { - "type": "string" - }, - "CodecSpecification": { - "type": "string" - }, - "ConstantIv": { - "type": "string" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "DirectoryStructure": { - "type": "string" - }, - "DiscontinuityTags": { - "type": "string" - }, - "EncryptionType": { - "type": "string" - }, - "HlsCdnSettings": { - "$ref": "#/definitions/HlsCdnSettings" - }, - "HlsId3SegmentTagging": { - "type": "string" - }, - "IFrameOnlyPlaylists": { - "type": "string" - }, - "IncompleteSegmentBehavior": { - "type": "string" - }, - "IndexNSegments": { - "type": "integer" - }, - "InputLossAction": { - "type": "string" - }, - "IvInManifest": { - "type": "string" - }, - "IvSource": { - "type": "string" - }, - "KeepSegments": { - "type": "integer" - }, - "KeyFormat": { - "type": "string" - }, - "KeyFormatVersions": { - "type": "string" - }, - "KeyProviderSettings": { - "$ref": "#/definitions/KeyProviderSettings" - }, - "ManifestCompression": { - "type": "string" - }, - "ManifestDurationFormat": { - "type": "string" - }, - "MinSegmentLength": { - "type": "integer" - }, - "Mode": { - "type": "string" - }, - "OutputSelection": { - "type": "string" - }, - "ProgramDateTime": { - "type": "string" - }, - "ProgramDateTimeClock": { - "type": "string" - }, - "ProgramDateTimePeriod": { - "type": "integer" - }, - "RedundantManifest": { - "type": "string" - }, - "SegmentLength": { - "type": "integer" - }, - "SegmentationMode": { - "type": "string" - }, - "SegmentsPerSubdirectory": { - "type": "integer" - }, - "StreamInfResolution": { - "type": "string" - }, - "TimedMetadataId3Frame": { - "type": "string" - }, - "TimedMetadataId3Period": { - "type": "integer" - }, - "TimestampDeltaMilliseconds": { - "type": "integer" - }, - "TsFileMode": { - "type": "string" - } - }, - "type": "object" - }, - "HlsInputSettings": { - "additionalProperties": false, - "properties": { - "Bandwidth": { - "type": "integer" - }, - "BufferSegments": { - "type": "integer" - }, - "Retries": { - "type": "integer" - }, - "RetryInterval": { - "type": "integer" - }, - "Scte35Source": { - "type": "string" - } - }, - "type": "object" - }, - "HlsMediaStoreSettings": { - "additionalProperties": false, - "properties": { - "ConnectionRetryInterval": { - "type": "integer" - }, - "FilecacheDuration": { - "type": "integer" - }, - "MediaStoreStorageClass": { - "type": "string" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - } - }, - "type": "object" - }, - "HlsOutputSettings": { - "additionalProperties": false, - "properties": { - "H265PackagingType": { - "type": "string" - }, - "HlsSettings": { - "$ref": "#/definitions/HlsSettings" - }, - "NameModifier": { - "type": "string" - }, - "SegmentModifier": { - "type": "string" - } - }, - "type": "object" - }, - "HlsS3Settings": { - "additionalProperties": false, - "properties": { - "CannedAcl": { - "type": "string" - } - }, - "type": "object" - }, - "HlsSettings": { - "additionalProperties": false, - "properties": { - "AudioOnlyHlsSettings": { - "$ref": "#/definitions/AudioOnlyHlsSettings" - }, - "Fmp4HlsSettings": { - "$ref": "#/definitions/Fmp4HlsSettings" - }, - "FrameCaptureHlsSettings": { - "$ref": "#/definitions/FrameCaptureHlsSettings" - }, - "StandardHlsSettings": { - "$ref": "#/definitions/StandardHlsSettings" - } - }, - "type": "object" - }, - "HlsWebdavSettings": { - "additionalProperties": false, - "properties": { - "ConnectionRetryInterval": { - "type": "integer" - }, - "FilecacheDuration": { - "type": "integer" - }, - "HttpTransferMode": { - "type": "string" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - } - }, - "type": "object" - }, - "HtmlMotionGraphicsSettings": { - "additionalProperties": false, - "type": "object" - }, - "InputAttachment": { - "additionalProperties": false, - "properties": { - "AutomaticInputFailoverSettings": { - "$ref": "#/definitions/AutomaticInputFailoverSettings" - }, - "InputAttachmentName": { - "type": "string" - }, - "InputId": { - "type": "string" - }, - "InputSettings": { - "$ref": "#/definitions/InputSettings" - } - }, - "type": "object" - }, - "InputChannelLevel": { - "additionalProperties": false, - "properties": { - "Gain": { - "type": "integer" - }, - "InputChannel": { - "type": "integer" - } - }, - "type": "object" - }, - "InputLocation": { - "additionalProperties": false, - "properties": { - "PasswordParam": { - "type": "string" - }, - "Uri": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, - "InputLossBehavior": { - "additionalProperties": false, - "properties": { - "BlackFrameMsec": { - "type": "integer" - }, - "InputLossImageColor": { - "type": "string" - }, - "InputLossImageSlate": { - "$ref": "#/definitions/InputLocation" - }, - "InputLossImageType": { - "type": "string" - }, - "RepeatFrameMsec": { - "type": "integer" - } - }, - "type": "object" - }, - "InputLossFailoverSettings": { - "additionalProperties": false, - "properties": { - "InputLossThresholdMsec": { - "type": "integer" - } - }, - "type": "object" - }, - "InputSettings": { - "additionalProperties": false, - "properties": { - "AudioSelectors": { - "items": { - "$ref": "#/definitions/AudioSelector" - }, - "type": "array", - "uniqueItems": false - }, - "CaptionSelectors": { - "items": { - "$ref": "#/definitions/CaptionSelector" - }, - "type": "array", - "uniqueItems": false - }, - "DeblockFilter": { - "type": "string" - }, - "DenoiseFilter": { - "type": "string" - }, - "FilterStrength": { - "type": "integer" - }, - "InputFilter": { - "type": "string" - }, - "NetworkInputSettings": { - "$ref": "#/definitions/NetworkInputSettings" - }, - "Scte35Pid": { - "type": "integer" - }, - "Smpte2038DataPreference": { - "type": "string" - }, - "SourceEndBehavior": { - "type": "string" - }, - "VideoSelector": { - "$ref": "#/definitions/VideoSelector" - } - }, - "type": "object" - }, - "InputSpecification": { - "additionalProperties": false, - "properties": { - "Codec": { - "type": "string" - }, - "MaximumBitrate": { - "type": "string" - }, - "Resolution": { - "type": "string" - } - }, - "type": "object" - }, - "KeyProviderSettings": { - "additionalProperties": false, - "properties": { - "StaticKeySettings": { - "$ref": "#/definitions/StaticKeySettings" - } - }, - "type": "object" - }, - "M2tsSettings": { - "additionalProperties": false, - "properties": { - "AbsentInputAudioBehavior": { - "type": "string" - }, - "Arib": { - "type": "string" - }, - "AribCaptionsPid": { - "type": "string" - }, - "AribCaptionsPidControl": { - "type": "string" - }, - "AudioBufferModel": { - "type": "string" - }, - "AudioFramesPerPes": { - "type": "integer" - }, - "AudioPids": { - "type": "string" - }, - "AudioStreamType": { - "type": "string" - }, - "Bitrate": { - "type": "integer" - }, - "BufferModel": { - "type": "string" - }, - "CcDescriptor": { - "type": "string" - }, - "DvbNitSettings": { - "$ref": "#/definitions/DvbNitSettings" - }, - "DvbSdtSettings": { - "$ref": "#/definitions/DvbSdtSettings" - }, - "DvbSubPids": { - "type": "string" - }, - "DvbTdtSettings": { - "$ref": "#/definitions/DvbTdtSettings" - }, - "DvbTeletextPid": { - "type": "string" - }, - "Ebif": { - "type": "string" - }, - "EbpAudioInterval": { - "type": "string" - }, - "EbpLookaheadMs": { - "type": "integer" - }, - "EbpPlacement": { - "type": "string" - }, - "EcmPid": { - "type": "string" - }, - "EsRateInPes": { - "type": "string" - }, - "EtvPlatformPid": { - "type": "string" - }, - "EtvSignalPid": { - "type": "string" - }, - "FragmentTime": { - "type": "number" - }, - "Klv": { - "type": "string" - }, - "KlvDataPids": { - "type": "string" - }, - "NielsenId3Behavior": { - "type": "string" - }, - "NullPacketBitrate": { - "type": "number" - }, - "PatInterval": { - "type": "integer" - }, - "PcrControl": { - "type": "string" - }, - "PcrPeriod": { - "type": "integer" - }, - "PcrPid": { - "type": "string" - }, - "PmtInterval": { - "type": "integer" - }, - "PmtPid": { - "type": "string" - }, - "ProgramNum": { - "type": "integer" - }, - "RateMode": { - "type": "string" - }, - "Scte27Pids": { - "type": "string" - }, - "Scte35Control": { - "type": "string" - }, - "Scte35Pid": { - "type": "string" - }, - "Scte35PrerollPullupMilliseconds": { - "type": "number" - }, - "SegmentationMarkers": { - "type": "string" - }, - "SegmentationStyle": { - "type": "string" - }, - "SegmentationTime": { - "type": "number" - }, - "TimedMetadataBehavior": { - "type": "string" - }, - "TimedMetadataPid": { - "type": "string" - }, - "TransportStreamId": { - "type": "integer" - }, - "VideoPid": { - "type": "string" - } - }, - "type": "object" - }, - "M3u8Settings": { - "additionalProperties": false, - "properties": { - "AudioFramesPerPes": { - "type": "integer" - }, - "AudioPids": { - "type": "string" - }, - "EcmPid": { - "type": "string" - }, - "KlvBehavior": { - "type": "string" - }, - "KlvDataPids": { - "type": "string" - }, - "NielsenId3Behavior": { - "type": "string" - }, - "PatInterval": { - "type": "integer" - }, - "PcrControl": { - "type": "string" - }, - "PcrPeriod": { - "type": "integer" - }, - "PcrPid": { - "type": "string" - }, - "PmtInterval": { - "type": "integer" - }, - "PmtPid": { - "type": "string" - }, - "ProgramNum": { - "type": "integer" - }, - "Scte35Behavior": { - "type": "string" - }, - "Scte35Pid": { - "type": "string" - }, - "TimedMetadataBehavior": { - "type": "string" - }, - "TimedMetadataPid": { - "type": "string" - }, - "TransportStreamId": { - "type": "integer" - }, - "VideoPid": { - "type": "string" - } - }, - "type": "object" - }, - "MaintenanceCreateSettings": { - "additionalProperties": false, - "properties": { - "MaintenanceDay": { - "type": "string" - }, - "MaintenanceStartTime": { - "type": "string" - } - }, - "type": "object" - }, - "MediaPackageGroupSettings": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - } - }, - "type": "object" - }, - "MediaPackageOutputDestinationSettings": { - "additionalProperties": false, - "properties": { - "ChannelId": { - "type": "string" - } - }, - "type": "object" - }, - "MediaPackageOutputSettings": { - "additionalProperties": false, - "type": "object" - }, - "MotionGraphicsConfiguration": { - "additionalProperties": false, - "properties": { - "MotionGraphicsInsertion": { - "type": "string" - }, - "MotionGraphicsSettings": { - "$ref": "#/definitions/MotionGraphicsSettings" - } - }, - "type": "object" - }, - "MotionGraphicsSettings": { - "additionalProperties": false, - "properties": { - "HtmlMotionGraphicsSettings": { - "$ref": "#/definitions/HtmlMotionGraphicsSettings" - } - }, - "type": "object" - }, - "Mp2Settings": { - "additionalProperties": false, - "properties": { - "Bitrate": { - "type": "number" - }, - "CodingMode": { - "type": "string" - }, - "SampleRate": { - "type": "number" - } - }, - "type": "object" - }, - "Mpeg2FilterSettings": { - "additionalProperties": false, - "properties": { - "TemporalFilterSettings": { - "$ref": "#/definitions/TemporalFilterSettings" - } - }, - "type": "object" - }, - "Mpeg2Settings": { - "additionalProperties": false, - "properties": { - "AdaptiveQuantization": { - "type": "string" - }, - "AfdSignaling": { - "type": "string" - }, - "ColorMetadata": { - "type": "string" - }, - "ColorSpace": { - "type": "string" - }, - "DisplayAspectRatio": { - "type": "string" - }, - "FilterSettings": { - "$ref": "#/definitions/Mpeg2FilterSettings" - }, - "FixedAfd": { - "type": "string" - }, - "FramerateDenominator": { - "type": "integer" - }, - "FramerateNumerator": { - "type": "integer" - }, - "GopClosedCadence": { - "type": "integer" - }, - "GopNumBFrames": { - "type": "integer" - }, - "GopSize": { - "type": "number" - }, - "GopSizeUnits": { - "type": "string" - }, - "ScanType": { - "type": "string" - }, - "SubgopLength": { - "type": "string" - }, - "TimecodeBurninSettings": { - "$ref": "#/definitions/TimecodeBurninSettings" - }, - "TimecodeInsertion": { - "type": "string" - } - }, - "type": "object" - }, - "MsSmoothGroupSettings": { - "additionalProperties": false, - "properties": { - "AcquisitionPointId": { - "type": "string" - }, - "AudioOnlyTimecodeControl": { - "type": "string" - }, - "CertificateMode": { - "type": "string" - }, - "ConnectionRetryInterval": { - "type": "integer" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "EventId": { - "type": "string" - }, - "EventIdMode": { - "type": "string" - }, - "EventStopBehavior": { - "type": "string" - }, - "FilecacheDuration": { - "type": "integer" - }, - "FragmentLength": { - "type": "integer" - }, - "InputLossAction": { - "type": "string" - }, - "NumRetries": { - "type": "integer" - }, - "RestartDelay": { - "type": "integer" - }, - "SegmentationMode": { - "type": "string" - }, - "SendDelayMs": { - "type": "integer" - }, - "SparseTrackType": { - "type": "string" - }, - "StreamManifestBehavior": { - "type": "string" - }, - "TimestampOffset": { - "type": "string" - }, - "TimestampOffsetMode": { - "type": "string" - } - }, - "type": "object" - }, - "MsSmoothOutputSettings": { - "additionalProperties": false, - "properties": { - "H265PackagingType": { - "type": "string" - }, - "NameModifier": { - "type": "string" - } - }, - "type": "object" - }, - "MultiplexGroupSettings": { - "additionalProperties": false, - "type": "object" - }, - "MultiplexOutputSettings": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - } - }, - "type": "object" - }, - "MultiplexProgramChannelDestinationSettings": { - "additionalProperties": false, - "properties": { - "MultiplexId": { - "type": "string" - }, - "ProgramName": { - "type": "string" - } - }, - "type": "object" - }, - "NetworkInputSettings": { - "additionalProperties": false, - "properties": { - "HlsInputSettings": { - "$ref": "#/definitions/HlsInputSettings" - }, - "ServerValidation": { - "type": "string" - } - }, - "type": "object" - }, - "NielsenCBET": { - "additionalProperties": false, - "properties": { - "CbetCheckDigitString": { - "type": "string" - }, - "CbetStepaside": { - "type": "string" - }, - "Csid": { - "type": "string" - } - }, - "type": "object" - }, - "NielsenConfiguration": { - "additionalProperties": false, - "properties": { - "DistributorId": { - "type": "string" - }, - "NielsenPcmToId3Tagging": { - "type": "string" - } - }, - "type": "object" - }, - "NielsenNaesIiNw": { - "additionalProperties": false, - "properties": { - "CheckDigitString": { - "type": "string" - }, - "Sid": { - "type": "number" - }, - "Timezone": { - "type": "string" - } - }, - "type": "object" - }, - "NielsenWatermarksSettings": { - "additionalProperties": false, - "properties": { - "NielsenCbetSettings": { - "$ref": "#/definitions/NielsenCBET" - }, - "NielsenDistributionType": { - "type": "string" - }, - "NielsenNaesIiNwSettings": { - "$ref": "#/definitions/NielsenNaesIiNw" - } - }, - "type": "object" - }, - "Output": { - "additionalProperties": false, - "properties": { - "AudioDescriptionNames": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "CaptionDescriptionNames": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "OutputName": { - "type": "string" - }, - "OutputSettings": { - "$ref": "#/definitions/OutputSettings" - }, - "VideoDescriptionName": { - "type": "string" - } - }, - "type": "object" - }, - "OutputDestination": { - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" - }, - "MediaPackageSettings": { - "items": { - "$ref": "#/definitions/MediaPackageOutputDestinationSettings" - }, - "type": "array", - "uniqueItems": false - }, - "MultiplexSettings": { - "$ref": "#/definitions/MultiplexProgramChannelDestinationSettings" - }, - "Settings": { - "items": { - "$ref": "#/definitions/OutputDestinationSettings" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "OutputDestinationSettings": { - "additionalProperties": false, - "properties": { - "PasswordParam": { - "type": "string" - }, - "StreamName": { - "type": "string" - }, - "Url": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, - "OutputGroup": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "OutputGroupSettings": { - "$ref": "#/definitions/OutputGroupSettings" - }, - "Outputs": { - "items": { - "$ref": "#/definitions/Output" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "OutputGroupSettings": { - "additionalProperties": false, - "properties": { - "ArchiveGroupSettings": { - "$ref": "#/definitions/ArchiveGroupSettings" - }, - "FrameCaptureGroupSettings": { - "$ref": "#/definitions/FrameCaptureGroupSettings" - }, - "HlsGroupSettings": { - "$ref": "#/definitions/HlsGroupSettings" - }, - "MediaPackageGroupSettings": { - "$ref": "#/definitions/MediaPackageGroupSettings" - }, - "MsSmoothGroupSettings": { - "$ref": "#/definitions/MsSmoothGroupSettings" - }, - "MultiplexGroupSettings": { - "$ref": "#/definitions/MultiplexGroupSettings" - }, - "RtmpGroupSettings": { - "$ref": "#/definitions/RtmpGroupSettings" - }, - "UdpGroupSettings": { - "$ref": "#/definitions/UdpGroupSettings" - } - }, - "type": "object" - }, - "OutputLocationRef": { - "additionalProperties": false, - "properties": { - "DestinationRefId": { - "type": "string" - } - }, - "type": "object" - }, - "OutputLockingSettings": { - "additionalProperties": false, - "properties": { - "EpochLockingSettings": { - "$ref": "#/definitions/EpochLockingSettings" - }, - "PipelineLockingSettings": { - "$ref": "#/definitions/PipelineLockingSettings" - } - }, - "type": "object" - }, - "OutputSettings": { - "additionalProperties": false, - "properties": { - "ArchiveOutputSettings": { - "$ref": "#/definitions/ArchiveOutputSettings" - }, - "FrameCaptureOutputSettings": { - "$ref": "#/definitions/FrameCaptureOutputSettings" - }, - "HlsOutputSettings": { - "$ref": "#/definitions/HlsOutputSettings" - }, - "MediaPackageOutputSettings": { - "$ref": "#/definitions/MediaPackageOutputSettings" - }, - "MsSmoothOutputSettings": { - "$ref": "#/definitions/MsSmoothOutputSettings" - }, - "MultiplexOutputSettings": { - "$ref": "#/definitions/MultiplexOutputSettings" - }, - "RtmpOutputSettings": { - "$ref": "#/definitions/RtmpOutputSettings" - }, - "UdpOutputSettings": { - "$ref": "#/definitions/UdpOutputSettings" - } - }, - "type": "object" - }, - "PassThroughSettings": { - "additionalProperties": false, - "type": "object" - }, - "PipelineLockingSettings": { - "additionalProperties": false, - "type": "object" - }, - "RawSettings": { - "additionalProperties": false, - "type": "object" - }, - "Rec601Settings": { - "additionalProperties": false, - "type": "object" - }, - "Rec709Settings": { - "additionalProperties": false, - "type": "object" - }, - "RemixSettings": { - "additionalProperties": false, - "properties": { - "ChannelMappings": { - "items": { - "$ref": "#/definitions/AudioChannelMapping" - }, - "type": "array", - "uniqueItems": false - }, - "ChannelsIn": { - "type": "integer" - }, - "ChannelsOut": { - "type": "integer" - } - }, - "type": "object" - }, - "RtmpCaptionInfoDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "RtmpGroupSettings": { - "additionalProperties": false, - "properties": { - "AdMarkers": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "AuthenticationScheme": { - "type": "string" - }, - "CacheFullBehavior": { - "type": "string" - }, - "CacheLength": { - "type": "integer" - }, - "CaptionData": { - "type": "string" - }, - "IncludeFillerNalUnits": { - "type": "string" - }, - "InputLossAction": { - "type": "string" - }, - "RestartDelay": { - "type": "integer" - } - }, - "type": "object" - }, - "RtmpOutputSettings": { - "additionalProperties": false, - "properties": { - "CertificateMode": { - "type": "string" - }, - "ConnectionRetryInterval": { - "type": "integer" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "NumRetries": { - "type": "integer" - } - }, - "type": "object" - }, - "Scte20PlusEmbeddedDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "Scte20SourceSettings": { - "additionalProperties": false, - "properties": { - "Convert608To708": { - "type": "string" - }, - "Source608ChannelNumber": { - "type": "integer" - } - }, - "type": "object" - }, - "Scte27DestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "Scte27SourceSettings": { - "additionalProperties": false, - "properties": { - "OcrLanguage": { - "type": "string" - }, - "Pid": { - "type": "integer" - } - }, - "type": "object" - }, - "Scte35SpliceInsert": { - "additionalProperties": false, - "properties": { - "AdAvailOffset": { - "type": "integer" - }, - "NoRegionalBlackoutFlag": { - "type": "string" - }, - "WebDeliveryAllowedFlag": { - "type": "string" - } - }, - "type": "object" - }, - "Scte35TimeSignalApos": { - "additionalProperties": false, - "properties": { - "AdAvailOffset": { - "type": "integer" - }, - "NoRegionalBlackoutFlag": { - "type": "string" - }, - "WebDeliveryAllowedFlag": { - "type": "string" - } - }, - "type": "object" - }, - "SmpteTtDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "StandardHlsSettings": { - "additionalProperties": false, - "properties": { - "AudioRenditionSets": { - "type": "string" - }, - "M3u8Settings": { - "$ref": "#/definitions/M3u8Settings" - } - }, - "type": "object" - }, - "StaticKeySettings": { - "additionalProperties": false, - "properties": { - "KeyProviderServer": { - "$ref": "#/definitions/InputLocation" - }, - "StaticKeyValue": { - "type": "string" - } - }, - "type": "object" - }, - "TeletextDestinationSettings": { - "additionalProperties": false, - "type": "object" - }, - "TeletextSourceSettings": { - "additionalProperties": false, - "properties": { - "OutputRectangle": { - "$ref": "#/definitions/CaptionRectangle" - }, - "PageNumber": { - "type": "string" - } - }, - "type": "object" - }, - "TemporalFilterSettings": { - "additionalProperties": false, - "properties": { - "PostFilterSharpening": { - "type": "string" - }, - "Strength": { - "type": "string" - } - }, - "type": "object" - }, - "ThumbnailConfiguration": { - "additionalProperties": false, - "properties": { - "State": { - "type": "string" - } - }, - "type": "object" - }, - "TimecodeBurninSettings": { - "additionalProperties": false, - "properties": { - "FontSize": { - "type": "string" - }, - "Position": { - "type": "string" - }, - "Prefix": { - "type": "string" - } - }, - "type": "object" - }, - "TimecodeConfig": { - "additionalProperties": false, - "properties": { - "Source": { - "type": "string" - }, - "SyncThreshold": { - "type": "integer" - } - }, - "type": "object" - }, - "TtmlDestinationSettings": { - "additionalProperties": false, - "properties": { - "StyleControl": { - "type": "string" - } - }, - "type": "object" - }, - "UdpContainerSettings": { - "additionalProperties": false, - "properties": { - "M2tsSettings": { - "$ref": "#/definitions/M2tsSettings" - } - }, - "type": "object" - }, - "UdpGroupSettings": { - "additionalProperties": false, - "properties": { - "InputLossAction": { - "type": "string" - }, - "TimedMetadataId3Frame": { - "type": "string" - }, - "TimedMetadataId3Period": { - "type": "integer" - } - }, - "type": "object" - }, - "UdpOutputSettings": { - "additionalProperties": false, - "properties": { - "BufferMsec": { - "type": "integer" - }, - "ContainerSettings": { - "$ref": "#/definitions/UdpContainerSettings" - }, - "Destination": { - "$ref": "#/definitions/OutputLocationRef" - }, - "FecOutputSettings": { - "$ref": "#/definitions/FecOutputSettings" - } - }, - "type": "object" - }, - "VideoBlackFailoverSettings": { - "additionalProperties": false, - "properties": { - "BlackDetectThreshold": { - "type": "number" - }, - "VideoBlackThresholdMsec": { - "type": "integer" - } - }, - "type": "object" - }, - "VideoCodecSettings": { - "additionalProperties": false, - "properties": { - "FrameCaptureSettings": { - "$ref": "#/definitions/FrameCaptureSettings" - }, - "H264Settings": { - "$ref": "#/definitions/H264Settings" - }, - "H265Settings": { - "$ref": "#/definitions/H265Settings" - }, - "Mpeg2Settings": { - "$ref": "#/definitions/Mpeg2Settings" - } - }, - "type": "object" - }, - "VideoDescription": { - "additionalProperties": false, - "properties": { - "CodecSettings": { - "$ref": "#/definitions/VideoCodecSettings" - }, - "Height": { - "type": "integer" - }, - "Name": { - "type": "string" - }, - "RespondToAfd": { - "type": "string" - }, - "ScalingBehavior": { - "type": "string" - }, - "Sharpness": { - "type": "integer" - }, - "Width": { - "type": "integer" - } - }, - "type": "object" - }, - "VideoSelector": { - "additionalProperties": false, - "properties": { - "ColorSpace": { - "type": "string" - }, - "ColorSpaceSettings": { - "$ref": "#/definitions/VideoSelectorColorSpaceSettings" - }, - "ColorSpaceUsage": { - "type": "string" - }, - "SelectorSettings": { - "$ref": "#/definitions/VideoSelectorSettings" - } - }, - "type": "object" - }, - "VideoSelectorColorSpaceSettings": { - "additionalProperties": false, - "properties": { - "Hdr10Settings": { - "$ref": "#/definitions/Hdr10Settings" - } - }, - "type": "object" - }, - "VideoSelectorPid": { - "additionalProperties": false, - "properties": { - "Pid": { - "type": "integer" - } - }, - "type": "object" - }, - "VideoSelectorProgramId": { - "additionalProperties": false, - "properties": { - "ProgramId": { - "type": "integer" - } - }, - "type": "object" - }, - "VideoSelectorSettings": { - "additionalProperties": false, - "properties": { - "VideoSelectorPid": { - "$ref": "#/definitions/VideoSelectorPid" - }, - "VideoSelectorProgramId": { - "$ref": "#/definitions/VideoSelectorProgramId" - } - }, - "type": "object" - }, - "VpcOutputSettings": { - "additionalProperties": false, - "properties": { - "PublicAddressAllocationIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "WavSettings": { - "additionalProperties": false, - "properties": { - "BitDepth": { - "type": "number" - }, - "CodingMode": { - "type": "string" - }, - "SampleRate": { - "type": "number" - } - }, - "type": "object" - }, - "WebvttDestinationSettings": { - "additionalProperties": false, - "properties": { - "StyleControl": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::MediaLive::Channel", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "type": "string" - }, - "CdiInputSpecification": { - "$ref": "#/definitions/CdiInputSpecification" - }, - "ChannelClass": { - "type": "string" - }, - "Destinations": { - "items": { - "$ref": "#/definitions/OutputDestination" - }, - "type": "array", - "uniqueItems": false - }, - "EncoderSettings": { - "$ref": "#/definitions/EncoderSettings" - }, - "Id": { - "type": "string" - }, - "InputAttachments": { - "items": { - "$ref": "#/definitions/InputAttachment" - }, - "type": "array", - "uniqueItems": false - }, - "InputSpecification": { - "$ref": "#/definitions/InputSpecification" - }, - "Inputs": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "LogLevel": { - "type": "string" - }, - "Maintenance": { - "$ref": "#/definitions/MaintenanceCreateSettings" - }, - "Name": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "Tags": { - "type": "object" - }, - "Vpc": { - "$ref": "#/definitions/VpcOutputSettings" - } - }, - "readOnlyProperties": [ - "/properties/Inputs", - "/properties/Id", - "/properties/Arn" - ], - "typeName": "AWS::MediaLive::Channel" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-memorydb-acl.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-memorydb-acl.json deleted file mode 100644 index cef6cec217..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-memorydb-acl.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ACLName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "description": "A key-value pair to associate with a resource.", - "properties": { - "Key": { - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with 'aws:'. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 128, - "minLength": 1, - "pattern": "^(?!aws:)[a-zA-Z0-9 _\\.\\/=+:\\-@]*$", - "type": "string" - }, - "Value": { - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 256, - "minLength": 0, - "pattern": "^[a-zA-Z0-9 _\\.\\/=+:\\-@]*$", - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::MemoryDB::ACL", - "handlers": { - "create": { - "permissions": [ - "memorydb:CreateACL", - "memorydb:DescribeACLs", - "memorydb:TagResource", - "memorydb:ListTags" - ] - }, - "delete": { - "permissions": [ - "memorydb:ModifyReplicationGroup", - "memorydb:DeleteACL", - "memorydb:DescribeACLs" - ] - }, - "list": { - "permissions": [ - "memorydb:DescribeACLs", - "memorydb:ListTags" - ] - }, - "read": { - "permissions": [ - "memorydb:DescribeACLs", - "memorydb:ListTags" - ] - }, - "update": { - "permissions": [ - "memorydb:UpdateACL", - "memorydb:DescribeACLs", - "memorydb:ListTags", - "memorydb:TagResource", - "memorydb:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ACLName" - ], - "properties": { - "ACLName": { - "description": "The name of the acl.", - "pattern": "[a-z][a-z0-9\\\\-]*", - "type": "string" - }, - "Arn": { - "description": "The Amazon Resource Name (ARN) of the acl.", - "type": "string" - }, - "Status": { - "description": "Indicates acl status. Can be \"creating\", \"active\", \"modifying\", \"deleting\".", - "type": "string" - }, - "Tags": { - "description": "An array of key-value pairs to apply to this cluster.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "UserNames": { - "$comment": "List of users.", - "description": "List of users associated to this acl.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Status", - "/properties/Arn" - ], - "required": [ - "ACLName" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-memorydb", - "taggable": true, - "typeName": "AWS::MemoryDB::ACL" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-memorydb-parametergroup.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-memorydb-parametergroup.json deleted file mode 100644 index ed84a0204e..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-memorydb-parametergroup.json +++ /dev/null @@ -1,121 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ParameterGroupName", - "/properties/Family", - "/properties/Description" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "description": "A key-value pair to associate with a resource.", - "properties": { - "Key": { - "description": "The key for the tag. May not be null.", - "maxLength": 128, - "minLength": 1, - "pattern": "^(?!aws:)(?!memorydb:)[a-zA-Z0-9 _\\.\\/=+:\\-@]{1,128}$", - "type": "string" - }, - "Value": { - "description": "The tag's value. May be null.", - "maxLength": 256, - "minLength": 1, - "pattern": "^(?!aws:)(?!memorydb:)[a-zA-Z0-9 _\\.\\/=+:\\-@]{1,256}$", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "The AWS::MemoryDB::ParameterGroup resource creates an Amazon MemoryDB ParameterGroup.", - "handlers": { - "create": { - "permissions": [ - "memorydb:CreateParameterGroup", - "memorydb:DescribeParameterGroups", - "memorydb:TagResource", - "memorydb:ListTags" - ] - }, - "delete": { - "permissions": [ - "memorydb:DeleteParameterGroup" - ] - }, - "list": { - "permissions": [ - "memorydb:DescribeParameterGroups" - ] - }, - "read": { - "permissions": [ - "memorydb:DescribeParameterGroups", - "memorydb:ListTags" - ] - }, - "update": { - "permissions": [ - "memorydb:UpdateParameterGroup", - "memorydb:DescribeParameterGroups", - "memorydb:DescribeParameters", - "memorydb:DescribeClusters", - "memorydb:ListTags", - "memorydb:TagResource", - "memorydb:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ParameterGroupName" - ], - "properties": { - "ARN": { - "description": "The Amazon Resource Name (ARN) of the parameter group.", - "type": "string" - }, - "Description": { - "description": "A description of the parameter group.", - "type": "string" - }, - "Family": { - "description": "The name of the parameter group family that this parameter group is compatible with.", - "type": "string" - }, - "ParameterGroupName": { - "description": "The name of the parameter group.", - "type": "string" - }, - "Parameters": { - "description": "An map of parameter names and values for the parameter update. You must supply at least one parameter name and value; subsequent arguments are optional.", - "type": "object" - }, - "Tags": { - "description": "An array of key-value pairs to apply to this parameter group.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/ARN" - ], - "required": [ - "ParameterGroupName", - "Family" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-memorydb", - "taggable": true, - "typeName": "AWS::MemoryDB::ParameterGroup", - "writeOnlyProperties": [ - "/properties/Parameters" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-memorydb-subnetgroup.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-memorydb-subnetgroup.json similarity index 98% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-memorydb-subnetgroup.json rename to src/cfnlint/data/schemas/providers/us_west_2/aws-memorydb-subnetgroup.json index 7a6449202d..b0145dd1a0 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-memorydb-subnetgroup.json +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-memorydb-subnetgroup.json @@ -36,7 +36,6 @@ "permissions": [ "memorydb:CreateSubnetGroup", "memorydb:DescribeSubnetGroups", - "memorydb:TagResource", "memorydb:ListTags" ] }, diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-msk-batchscramsecret.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-msk-batchscramsecret.json deleted file mode 100644 index 924d80158d..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-msk-batchscramsecret.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ClusterArn" - ], - "definitions": { - "SecretArnList": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - } - }, - "description": "Resource Type definition for AWS::MSK::BatchScramSecret", - "handlers": { - "create": { - "permissions": [ - "kafka:BatchAssociateScramSecret", - "kafka:ListScramSecrets", - "kms:CreateGrant", - "kms:DescribeKey" - ] - }, - "delete": { - "permissions": [ - "kafka:BatchDisassociateScramSecret", - "kafka:ListScramSecrets", - "kms:CreateGrant", - "kms:DescribeKey" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ClusterArn": { - "$ref": "resource-schema.json#/properties/ClusterArn" - } - }, - "required": [ - "ClusterArn" - ] - }, - "permissions": [ - "kafka:ListScramSecrets", - "kms:CreateGrant", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "kafka:ListScramSecrets", - "kms:CreateGrant", - "kms:DescribeKey" - ] - }, - "update": { - "permissions": [ - "kafka:BatchAssociateScramSecret", - "kafka:BatchDisassociateScramSecret", - "kafka:ListScramSecrets", - "kms:CreateGrant", - "kms:DescribeKey" - ] - } - }, - "primaryIdentifier": [ - "/properties/ClusterArn" - ], - "properties": { - "ClusterArn": { - "type": "string" - }, - "SecretArnList": { - "$ref": "#/definitions/SecretArnList" - } - }, - "required": [ - "ClusterArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-msk", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::MSK::BatchScramSecret" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-route53resolver-resolverconfig.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-route53resolver-resolverconfig.json deleted file mode 100644 index 33f4996fbd..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-route53resolver-resolverconfig.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ResourceId", - "/properties/AutodefinedReverseFlag" - ], - "description": "Resource schema for AWS::Route53Resolver::ResolverConfig.", - "handlers": { - "create": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "delete": { - "permissions": [ - "route53resolver:UpdateResolverConfig" - ] - }, - "list": { - "permissions": [ - "route53resolver:ListResolverConfigs" - ] - }, - "read": { - "permissions": [ - "route53resolver:GetResolverConfig" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AutodefinedReverse": { - "description": "ResolverAutodefinedReverseStatus, possible values are ENABLING, ENABLED, DISABLING AND DISABLED.", - "enum": [ - "ENABLING", - "ENABLED", - "DISABLING", - "DISABLED" - ], - "type": "string" - }, - "AutodefinedReverseFlag": { - "description": "Represents the desired status of AutodefinedReverse. The only supported value on creation is DISABLE. Deletion of this resource will return AutodefinedReverse to its default value (ENABLED).", - "enum": [ - "DISABLE" - ], - "type": "string" - }, - "Id": { - "description": "Id", - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "OwnerId": { - "description": "AccountId", - "maxLength": 32, - "minLength": 12, - "type": "string" - }, - "ResourceId": { - "description": "ResourceId", - "maxLength": 64, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/OwnerId", - "/properties/Id", - "/properties/AutodefinedReverse" - ], - "required": [ - "ResourceId", - "AutodefinedReverseFlag" - ], - "taggable": false, - "typeName": "AWS::Route53Resolver::ResolverConfig" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-workspacesthinclient-environment.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-workspacesthinclient-environment.json deleted file mode 100644 index 2e2911e28a..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-workspacesthinclient-environment.json +++ /dev/null @@ -1,317 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/KmsKeyArn", - "/properties/DesktopArn" - ], - "definitions": { - "DayOfWeek": { - "enum": [ - "MONDAY", - "TUESDAY", - "WEDNESDAY", - "THURSDAY", - "FRIDAY", - "SATURDAY", - "SUNDAY" - ], - "type": "string" - }, - "Hour": { - "maximum": 23, - "minimum": 0, - "type": "integer" - }, - "MaintenanceWindow": { - "additionalProperties": false, - "properties": { - "ApplyTimeOf": { - "description": "The desired time zone maintenance window.", - "enum": [ - "UTC", - "DEVICE" - ], - "type": "string" - }, - "DaysOfTheWeek": { - "description": "The date of maintenance window.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/DayOfWeek" - }, - "maxItems": 7, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "EndTimeHour": { - "$ref": "#/definitions/Hour", - "description": "The hour end time of maintenance window." - }, - "EndTimeMinute": { - "$ref": "#/definitions/Minute", - "description": "The minute end time of maintenance window." - }, - "StartTimeHour": { - "$ref": "#/definitions/Hour", - "description": "The hour start time of maintenance window." - }, - "StartTimeMinute": { - "$ref": "#/definitions/Minute", - "description": "The minute start time of maintenance window." - }, - "Type": { - "description": "The type of maintenance window.", - "enum": [ - "SYSTEM", - "CUSTOM" - ], - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "Minute": { - "maximum": 59, - "minimum": 0, - "type": "integer" - }, - "Tag": { - "additionalProperties": false, - "description": "A key-value pair to associate with a resource.", - "properties": { - "Key": { - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 128, - "minLength": 1, - "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$", - "type": "string" - }, - "Value": { - "description": "The value for the tag. You can specify a value that is 1 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "Resource type definition for AWS::WorkSpacesThinClient::Environment.", - "handlers": { - "create": { - "permissions": [ - "thinclient:CreateEnvironment", - "thinclient:TagResource", - "thinclient:ListTagsForResource", - "appstream:DescribeStacks", - "workspaces:DescribeWorkspaceDirectories", - "workspaces-web:GetPortal", - "workspaces-web:GetUserSettings", - "kms:DescribeKey", - "kms:Encrypt", - "kms:Decrypt", - "kms:CreateGrant" - ] - }, - "delete": { - "permissions": [ - "thinclient:DeleteEnvironment", - "thinclient:UntagResource", - "kms:DescribeKey", - "kms:RetireGrant" - ] - }, - "list": { - "permissions": [ - "thinclient:ListEnvironment", - "thinclient:ListTagsForResource", - "kms:DescribeKey", - "kms:Encrypt", - "kms:Decrypt" - ] - }, - "read": { - "permissions": [ - "thinclient:GetEnvironment", - "thinclient:ListTagsForResource", - "kms:DescribeKey", - "kms:Encrypt", - "kms:Decrypt" - ] - }, - "update": { - "permissions": [ - "appstream:DescribeStacks", - "workspaces:DescribeWorkspaceDirectories", - "workspaces-web:GetPortal", - "workspaces-web:GetUserSettings", - "thinclient:UpdateEnvironment", - "thinclient:GetEnvironment", - "thinclient:TagResource", - "thinclient:UntagResource", - "thinclient:ListTagsForResource", - "kms:DescribeKey", - "kms:Encrypt", - "kms:Decrypt", - "kms:CreateGrant", - "kms:RetireGrant" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "ActivationCode": { - "description": "Activation code for devices associated with environment.", - "pattern": "^[a-z]{2}[a-z0-9]{6}$", - "type": "string" - }, - "Arn": { - "description": "The environment ARN.", - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[0-9]{0,12}:[a-zA-Z0-9\\-\\/\\._]+$", - "type": "string" - }, - "CreatedAt": { - "description": "The timestamp in unix epoch format when environment was created.", - "type": "string" - }, - "DesiredSoftwareSetId": { - "description": "The ID of the software set to apply.", - "pattern": "^[0-9]{1,9}$", - "type": "string" - }, - "DesktopArn": { - "description": "The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, WorkSpaces Web, or AppStream 2.0.", - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[0-9]{0,12}:[a-zA-Z0-9\\-\\/\\._]+$", - "type": "string" - }, - "DesktopEndpoint": { - "description": "The URL for the identity provider login (only for environments that use AppStream 2.0).", - "maxLength": 1024, - "minLength": 1, - "pattern": "^(https:\\/\\/)[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,32}(:[0-9]{1,5})?(\\/.*)?$", - "type": "string" - }, - "DesktopType": { - "description": "The type of VDI.", - "enum": [ - "workspaces", - "appstream", - "workspaces-web" - ], - "type": "string" - }, - "Id": { - "description": "Unique identifier of the environment.", - "pattern": "^[a-z0-9]{9}$", - "type": "string" - }, - "KmsKeyArn": { - "description": "The Amazon Resource Name (ARN) of the AWS Key Management Service key used to encrypt the environment.", - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:[\\w+=\\/,.@-]+:kms:[a-zA-Z0-9\\-]*:[0-9]{0,12}:key\\/[a-zA-Z0-9-]+$", - "type": "string" - }, - "MaintenanceWindow": { - "$ref": "#/definitions/MaintenanceWindow", - "description": "A specification for a time window to apply software updates." - }, - "Name": { - "description": "The name of the environment.", - "maxLength": 64, - "minLength": 1, - "pattern": "^.+$", - "type": "string" - }, - "PendingSoftwareSetId": { - "description": "The ID of the software set that is pending to be installed.", - "pattern": "^[0-9]{1,9}$", - "type": "string" - }, - "PendingSoftwareSetVersion": { - "description": "The version of the software set that is pending to be installed.", - "type": "string" - }, - "RegisteredDevicesCount": { - "description": "Number of devices registered to the environment.", - "minimum": 0, - "type": "integer" - }, - "SoftwareSetComplianceStatus": { - "description": "Describes if the software currently installed on all devices in the environment is a supported version.", - "enum": [ - "COMPLIANT", - "NOT_COMPLIANT", - "NO_REGISTERED_DEVICES" - ], - "type": "string" - }, - "SoftwareSetUpdateMode": { - "description": "An option to define which software updates to apply.", - "enum": [ - "USE_LATEST", - "USE_DESIRED" - ], - "type": "string" - }, - "SoftwareSetUpdateSchedule": { - "description": "An option to define if software updates should be applied within a maintenance window.", - "enum": [ - "USE_MAINTENANCE_WINDOW", - "APPLY_IMMEDIATELY" - ], - "type": "string" - }, - "Tags": { - "description": "An array of key-value pairs to apply to this resource.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 20, - "type": "array", - "uniqueItems": true - }, - "UpdatedAt": { - "description": "The timestamp in unix epoch format when environment was last updated.", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/ActivationCode", - "/properties/Arn", - "/properties/CreatedAt", - "/properties/DesktopType", - "/properties/RegisteredDevicesCount", - "/properties/UpdatedAt", - "/properties/PendingSoftwareSetId", - "/properties/PendingSoftwareSetVersion", - "/properties/SoftwareSetComplianceStatus" - ], - "required": [ - "DesktopArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::WorkSpacesThinClient::Environment" -}